1. 程式人生 > >HTTP面試題目

HTTP面試題目

ges http請求 請求區別 logs 關閉連接 val 數據傳輸 管理 支持

轉自:http://m.blog.csdn.net/zhangliangzi/article/details/51336564

1、說一下什麽是Http協議?

對器客戶端和 服務器端之間數據傳輸的格式規範,格式簡稱為“超文本傳輸協議”。

2、什麽是Http協議無狀態協議?怎麽解決Http協議無狀態協議?(曾經去某創業公司問到)

1、無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息

2、無狀態協議解決辦法: 通過1、Cookie 2、通過Session會話保存。

3、說一下Http協議中302狀態(阿裏經常問)

http協議中,返回狀態碼302表示重定向。

這種情況下,服務器返回的頭部信息中會包含一個 Location 字段,內容是重定向到的url

4、Http協議有什麽組成?

請求報文包含三部分:

a、請求行:包含請求方法、URI、HTTP版本信息

b、請求首部字段

c、請求內容實體

響應報文包含三部分:

a、狀態行:包含HTTP版本、狀態碼、狀態碼的原因短語

b、響應首部字段

c、響應內容實體

5、Http協議中有那些請求方式?

GET: 用於請求訪問已經被URI(統一資源標識符)識別的資源,可以通過URL傳參給服務器

POST:用於傳輸信息給服務器,主要功能與GET方法類似,但一般推薦使用POST方式。

PUT: 傳輸文件,報文主體中包含文件內容,保存到對應URI位置。

HEAD: 獲得報文首部,與GET方法類似,只是不返回報文主體,一般用於驗證URI是否有效。

DELETE:刪除文件,與PUT方法相反,刪除對應URI位置的文件。

OPTIONS:查詢相應URI支持的HTTP方法。

6、Http協議中Http1.0與1.1區別?

在http1.0中,當建立連接後,客戶端發送一個請求,服務器端返回一個信息後就關閉連接,當瀏覽器下次請求的時候又要建立連接,顯然這種不斷建立連接的方式,會造成很多問題。

5.在http1.1中,引入了持續連接的概念,通過這種連接,瀏覽器可以建立一個連接之後,發送請求並得到返回信息,然後繼續發送請求再次等到返回信息,也就是說客戶端可以連續發送多個請求,而不用等待每一個響應的到來。

7、Http協議實現原理機制?

2.1、整個流程步驟

技術分享

2.2、域名解析過程

技術分享

2.3、三次握手過程

2.4、發起HTTP請求

2.5、響應HTTP請求並得到HTML代碼

2.6、瀏覽器解析HTML代碼

2.7、瀏覽器對頁面進行渲染呈現給用戶

8、get與post請求區別?(初級程序員必備問題)

區別一:

get重點在從服務器上獲取資源,post重點在向服務器發送數據;

區別二:

get傳輸數據是通過URL請求,以field(字段)= value的形式,置於URL後,並用"?"連接,多個請求數據間用"&"連接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,這個過程用戶是可見的;

post傳輸數據通過Http的post機制,將字段與對應值封存在請求實體中發送給服務器,這個過程對用戶是不可見的;

區別三:

Get傳輸的數據量小,因為受URL長度限制,但效率較高;

Post可以傳輸大量數據,所以上傳文件時只能用Post方式;

區別四:

get是不安全的,因為URL是可見的,可能會泄露私密信息,如密碼等;

post較get安全性較高;

區別五:

get方式只能支持ASCII字符,向服務器傳的中文字符可能會亂碼。

post支持標準字符集,可以正確傳遞中文字符。

9、Http請求報文與響應報文格式?

請求報文包含三部分:

a、請求行:包含請求方法、URI、HTTP版本信息

b、請求首部字段

c、請求內容實體

響應報文包含三部分:

a、狀態行:包含HTTP版本、狀態碼、狀態碼的原因短語

b、響應首部字段

c、響應內容實體

10、常見Http協議狀態?

200:請求被正常處理

204:請求被受理但沒有資源可以返回

206:客戶端只是請求資源的一部分,服務器只對請求的部分資源執行GET方法,相應報文中通過Content-Range指定範圍的資源。

301:永久性重定向

302:臨時重定向

303:與302狀態碼有相似功能,只是它希望客戶端在請求一個URI的時候,能通過GET方法重定向到另一個URI上

304:發送附帶條件的請求時,條件不滿足時返回,與重定向無關

307:臨時重定向,與302類似,只是強制要求使用POST方法

400:請求報文語法有誤,服務器無法識別

401:請求需要認證

403:請求的對應資源禁止被訪問

404:服務器無法找到對應資源

500:服務器內部錯誤

503:服務器正忙

11、Http協議首部字段?

a、通用首部字段(請求報文與響應報文都會使用的首部字段)

Date:創建報文時間

Connection:連接的管理

Cache-Control:緩存的控制

Transfer-Encoding:報文主體的傳輸編碼方式

b、請求首部字段(請求報文會使用的首部字段)

Host:請求資源所在服務器

Accept:可處理的媒體類型

Accept-Charset:可接收的字符集

Accept-Encoding:可接受的內容編碼

Accept-Language:可接受的自然語言

c、響應首部字段(響應報文會使用的首部字段)

Accept-Ranges:可接受的字節範圍

Location:令客戶端重新定向到的URI

Server:HTTP服務器的安裝信息

d、實體首部字段(請求報文與響應報文的的實體部分使用的首部字段)

Allow:資源可支持的HTTP方法

Content-Type:實體主類的類型

Content-Encoding:實體主體適用的編碼方式

Content-Language:實體主體的自然語言

Content-Length:實體主體的的字節數

Content-Range:實體主體的位置範圍,一般用於發出部分請求時使用

12、Http與Https優缺點?

a、通信使用明文不加密,內容可能被竊聽,也就是被抓包分析。

b、不驗證通信方身份,可能遭到偽裝

c、無法驗證報文完整性,可能被篡改

HTTPS就是HTTP加上加密處理(一般是SSL安全通信線路)+認證+完整性保護

13、Http優化

利用負載均衡優化和加速HTTP應用

利用HTTP Cache來優化網站

14、Http協議有那些特征?

1、支持客戶/服務器模式;2、簡單快速;3、靈活;4、無連接;5、無狀態;

如果你還對Http協議不熟悉的話,請參考Http協議http://www.itmayiedu.com/front/articleinfo/49.html文章

HTTP面試題目