HTTPv1.1後,默認都開啓了Keep-Alive,能夠保存長連接,當一個網頁打開完成後,客戶端和服務器之間用於傳輸HTTP數據的TCP鏈接不會關閉,若是客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經創建的鏈接瀏覽器
Keep-Alive不會永久保持鏈接,它有一個保持時間,能夠在不一樣的服務器軟件(如Apache)中設定這個時間。緩存
GET 方法
- GET 請求可被緩存
- GET 請求保留在瀏覽器歷史記錄中
- GET 請求可被收藏爲書籤
- GET請求只能進行URL編碼,只接受ASCII字符
- GET產生一個TCP數據包, 瀏覽器會把http header和data一併發送出去,服務器響應200(返回數據);
- GET 瀏覽器對URL長度有限制
- IE瀏覽器對URL的最大限制爲2083個字符
- Firefox瀏覽器URL的長度限制爲65,536個字符。
- Google瀏覽器URL最大長度限制爲8182個字符。
POST 方法
- POST 請求不會被緩存
- POST 請求不會保留在瀏覽器歷史記錄中
- POST 不能被收藏爲書籤
- POST 請求對數據長度沒有要求,Tomcat對POST大小限制默認2M;
- POST 支持多種編碼方式
- 點擊瀏覽器的回退時, 數據會被從新提交
- POST產生兩個TCP數據包(Firefox就只發送一次),瀏覽器先發送header,服務器響應100 continue,瀏覽器再發送data,服務器響應200 ok(發送2次包的TCP在驗證數據包完整性上,有很是大的優勢)。
- POST不是時冪等
PUT 方法
- PUT是冪等操做
- PUT請求中的URI表示請求中封閉的實體-用戶代理知道URI的目標,而且服務器沒法將請求應用到其餘資源。若是服務器但願該請求應用到另外一個URI,就必須發送一個301響應;用戶代理可經過本身的判斷來決定是否轉發該請求。
DELETE 方法
HEAD 方法
- 類GET方法,不響應頁面Body部分,用於獲取資源的基本信息,即檢查連接的可訪問性及資源是否修改。
- 只請求資源的首部
- 檢查超連接的有效性
PATCH 方法
- PATCH方法是冪等的。
- 對PUT方法的補充,對已知資源進行"局部更新"
常見HTTP狀態碼
- 信息代碼:1xx:
- 100 客戶端繼續發送請求
- 101 切換協議(只能切換到更高級的協議,例如,切換到HTTP的新版本協議)
- 成功代碼:2xx:
- 200 (成功) 服務器已成功處理了請求。 一般,這表示服務器提供了請求的網頁。
- 201 (已建立) 請求成功而且服務器建立了新的資源。
- 202 (已接受) 服務器已接受請求,但還沒有處理。
- 203 (非受權信息) 服務器已成功處理了請求,但返回的信息可能來自另外一來源。
- 重定向:3xx:
- 301(永久重定向)請求的網頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
- 302(臨時重定向) 服務器目前從不一樣位置的網頁響應請求,但請求者應繼續使用原有位置來進行之後的請求。(禁止post變化get,能夠用)。
- 303 該狀態碼錶示因爲請求對應的資源存在着另外一個URI,應使用GET方法定向獲取請求的資源。(http/1.1以前沒法準確適用)
- 304 (未修改) 自從上次請求後,請求的網頁未修改過。 服務器返回此響應時,不會返回網頁內容。
- 307 (臨時重定向)遵守瀏覽器標準,不會從post變爲get。
- 客戶端錯誤:4xx:
- 400(錯誤請求) 一、服務器不理解請求的語法,除非進行修改,不然客戶端不該該重複提交這個請求。。二、請求參數有誤。
- 401(未受權) 請求要求身份驗證。服務器驗證拒絕了用戶證書。
- 403(禁止) 服務器拒絕請求。
- 404(未找到) 請求失敗,請求所但願獲得的資源未被在服務器上發現。服務器找不到請求的網頁。
- 405(方法禁用) 禁用請求中指定的方法。鑑於 PUT,DELETE 方法會對服務器上的資源進行寫操做,鑑於 PUT,DELETE 方法會對服務器上的資源進行寫操做。
- 406(不接受) 沒法使用請求的內容特性響應請求的網頁。請求的資源的內容特性沒法知足請求頭中的條件,於是沒法生成響應實體。
- 408(請求超時) 服務器等候請求時發生超時。能夠再次提交請求。
- 410(已刪除) 若是請求的資源已刪除,並且沒有任何已知的轉發地址,服務器就會返回此響應。
- 413(請求實體過大) 服務器沒法處理請求,由於請求實體過大,超出服務器的處理能力。
- 414(請求的 URI 過長) 請求的 URI(一般爲網址)過長,服務器沒法處理。
- 服務器錯誤:5xx:
- 500 (服務器內部錯誤) 服務器遇到錯誤,沒法完成請求。
- 501 (還沒有實施) 服務器不具有完成請求的功能。 例如,服務器沒法識別請求方法時可能會返回此代碼。
- 502 (錯誤網關) 服務器做爲網關或代理,從上游服務器收到無效響應。
- 503 (服務不可用) 服務器目前沒法使用(因爲超載或停機維護)。 一般,這只是暫時狀態。
- 504 (網關超時) 服務器做爲網關或代理,可是沒有及時從上游服務器收到請求。
- 505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協議版本。