HTTP解析(持續更新)
阿新 • • 發佈:2018-11-02
常見的HTTP請求頭
請求頭 | 說明 |
---|---|
Accept-Charset | 用於指定客戶端接收的字符集 |
Accept-Encoding | 用於可接受的內容編碼,如:Accept-Encoding:gzip.deflate |
Accept-Language | 用於指定一種自然語言,如Accept-Language:zh-cn |
Host | 用於指定被請求資源的Internet主機和埠號,如Host:www.taobao.com |
User-Agent | 客戶端將他的的作業系統、瀏覽器和其他屬性告訴伺服器 |
Connection | 當前連線是否保持,如Connection:Keep-Alive |
常見的HTTP響應頭
響應頭 | 說明 |
---|---|
Server | 使用的伺服器名稱,如Server:Apache/1.36(Unix) |
Content-Type | 用來指明發送給接收者的實體正文的媒體型別,如Content-Type:text/html;charset=GBK |
Content-Encoding | 與請求報頭Accept-Encoding相對應,告訴瀏覽器服務端採用的是什麼壓縮編碼 |
Content-Language | 描述了資源所用的自然語言,與Accept-Language對應 |
Content-Length | 指明瞭實體正文的長度,用以位元組方式儲存的十進位制數字來表示 |
Keep-Alive | 保持連線的時間,如Keep-Alive:timeout=5,max=120 |
常見的HTTP狀態碼
http狀態碼由三個十進位制數字組成,第一個十進位制數字定義了狀態碼的型別,後兩個數字沒有分類的作用,以下為http狀態碼的5鍾型別
分類 | 說明 |
---|---|
1** | 資訊,服務端收到請求,需要請求者繼續執行操作 |
2** | 成功,操作被成功接收並處理 |
3** | 重定向,需要進一步的操作完成請求 |
4** | 客戶端錯誤,請求包含語法或者無法完成請求 |
5** | 服務端錯誤,伺服器在處理請求時發生了錯誤 |
常見的狀態碼列表
狀態碼 | 說明 |
---|---|
200 | 客戶端請求成功 |
302 | 臨時跳轉,跳轉的地址通過Location指定 |
400 | 客戶端請求有語法錯誤,不能被服務端識別 |
403 | 伺服器接收到請求,但是拒絕提供服務 |
404 | 請求的資源不存在 |
405 | 客戶端請求中的方法被禁止 |
500 | 伺服器發生不可預期的錯誤 |
常見的錯誤分析
405 錯誤(Method Not Allowed)
以 4 開頭的 response 狀態碼一般都是客戶端錯誤,405 錯誤為客戶端請求的方法錯誤,一般是請求的方式錯誤,請求一般最常見的有 get 和 post 兩種,當服務端指定請求的方式為 post,但是客戶端卻使用 get 請求去訪問,服務端會返回 405,此時需要更換請求方式。
參考深入分析java Web技術內幕
更多的狀態碼列表請點選此處點選此處