天天看點

TCP/IP協定族(六)

Http的封包結構及内容

Http的封包分為兩種:請求封包,響應封包。

請求封包包含頭部和請求行,部分請求封包包含主體。

響應封包包含頭部和狀态行,部分響應封包包含主體。

TCP/IP協定族(六)

頭部包含通用頭部,請求頭部,響應頭部,實體頭部。

請求封包隻能包含通用頭部,請求頭部和實體頭部。

響應封包隻能包含通用頭部,響應頭部和實體頭部。

請求行:請求類型,URL,HTTP版本。

狀态行:HTTP版本,狀态碼,狀态短語。

請求類型包括:

GET: 向伺服器請求文檔。

POST: 從用戶端向伺服器發送資訊。

PUT: 從伺服器向用戶端發送文檔。

HEAD: 請求關于文檔資訊,而不是文檔本身。

TRACE: 回顯輸入的請求。

CONNECT: 預留。

OPTION: 詢問有關可用的選項。

HTTP版本:目前常用版本為1.1。

http1.0版本與http1.1版本最大的差別就是在于持續連接配接與非持續連接配接。http在版本1.1之前定義了非持續連接配接,而在版本1.1中預設的是持續連接配接。

非持續連接配接:每一次請求/相應都要建立TCP連結。在這種政策中,對于N個不同檔案的不同圖檔,連結必須建立和關閉N次。因為伺服器需要N個不同的緩沖區,并且每次建立一個連接配接時,需要一個較慢的啟動過程,是以非持續連結在伺服器端增加了很大的開銷。

持續連接配接:在持續連接配接中,伺服器在發送響應後會保持連接配接處于開啟狀态,以等待更多的請求。如果用戶端請求關閉或者逾時時,伺服器則會關閉連接配接。

狀态碼、狀态短語:

代碼 短語 描述
提供資訊
100 Continue 請求的初始部分已經收到,用戶端可以繼續他的請求
101 Switching 伺服器同一客戶的請求,切換到更新頭部所定義的協定
成功
200 OK 請求成功
201 Created 建立了一個新的URL
202 Accepted 請求已經接受,但他不能立即響應
204 No content 主體中沒有内容
重定向
301 Moved permanently 伺服器已不再使用所請求的URL
302 Moved temporarily 請求的URL已經暫時移開
304 Not modified 文檔還沒有被修改
用戶端錯誤
400 Bad request 在請求中有文法錯誤
401 Unauthorized 請求缺乏合适的授權
403 Forbidden 服務被拒絕
404 Not found 沒有找到文檔
405 Method not allowed URL不支援該方法
406 Not accept able 不接受這種格式的請求
伺服器錯誤
500 Internaluserver error 伺服器有錯誤,例如系統崩潰
501 Not implemented 請求的動作不能完成
503 Service unavailable 服務暫時不可用,但将來可以被再次請求

繼續閱讀