HTTP請求報文和響應響應結構

請求報文
客戶端發送一個HTTP請求到服務器的請求消息包括以下格式:請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成
客戶端請求報文的結構圖
請求行(request-line):(GET /homepage.html HTTP/1.1)

請求方法(GET/POST)
請求資源路徑(/homepage.html)
協議類型和版本(HTTP/1.1)

請求頭部(header):若干消息頭

content-teyp=text/html
Accept-Language: zh-cn,zh;q=0.5
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; 域名)
Host: www.baidu.com
Connection: Keep-Alive

空行(blank-line):

最後一個請求頭之後是一個空行,分隔請求頭

請求數據:消息體

這個部分不在GET方法中使用,在POST方法中使用。POST方法適用於需要客戶填寫表單的場合。與請求數據相關的最常使用的請求頭是Content-Type和Content-Length。

響應報文
HTTP響應也由四個部分組成,分別是:狀態行、消息報頭、空行、響應包體。
服務端響應報文的結構圖
狀態行(status-line):HTTP/1.1 200 OK(CRLF)

協議和版本(HTTP/1.1)
狀態碼(200)
狀態碼的描述(OK(CRLF))

消息包頭:(header)

和請求報文header一樣

空行(blank-line):

和請求報文空行一樣

響應包體:(body)

返回的數據

ps: 狀態碼

1xx:表示服務器已接收了客戶端請求,客戶端可繼續發送請求;
2xx:表示服務器已成功接收到請求並進行處理;
3xx:表示服務器要求客戶端重定向;
4xx:表示客戶端的請求有非法內容;
5xx:表示服務器未能正常處理客戶端的請求而出現意外錯誤;

常見狀態碼:

  • 200 OK:客戶端請求成功。

  • 400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解。

  • 401 Unauthorized:請求未經授權,這個狀態代碼必須和WW-Authenticate報頭域一起使用。
  • 403 Forbidden:服務器收到請求,但是拒絕提供服務。
  • 404 Not Found:請求資源不存在,舉個例子:輸入了錯誤的URL。
  • 500 Internal Server Error:服務器發生不可預期的錯誤。
  • 503 Server Unavailable:服務器當前不能處理客戶端的請求,一段時間後可能恢復正常。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章