HTTP報文組成
請求報文構成
-
請求行:包括請求方法、URL、協議/版本
-
請求頭(Request Header)
-
請求正文
響應報文構成
-
狀態行
-
響應頭
-
響應正文
post和get的區別:
-
都包含請求頭請求行,post多了請求body。
-
get多用來查詢,請求參數放在url中,不會對服務器上的內容產生作用。post用來提交,如把賬號密碼放入body中。
-
GET是直接添加到URL後面的,直接就可以在URL中看到內容,而POST是放在報文內部的,用戶無法直接看到。
-
GET提交的數據長度是有限制的,因爲URL長度有限制,具體的長度限制視瀏覽器而定。而POST沒有。
響應狀態碼
訪問一個網頁時,瀏覽器會向web服務器發出請求。此網頁所在的服務器會返回一個包含HTTP狀態碼的信息頭用以響應瀏覽器的請求。
狀態碼分類:
-
1XX- 信息型,服務器收到請求,需要請求者繼續操作。
-
2XX- 成功型,請求成功收到,理解並處理。
-
3XX - 重定向,需要進一步的操作以完成請求。
-
4XX - 客戶端錯誤,請求包含語法錯誤或無法完成請求。
-
5XX - 服務器錯誤,服務器在處理請求的過程中發生了錯誤。
常見狀態碼:
-
200 OK - 客戶端請求成功
-
301 - 資源(網頁等)被永久轉移到其它URL
-
302 - 臨時跳轉
-
400 Bad Request - 客戶端請求有語法錯誤,不能被服務器所理解
-
401 Unauthorized - 請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
-
404 - 請求資源不存在,可能是輸入了錯誤的URL
-
500 - 服務器內部發生了不可預期的錯誤
-
503 Server Unavailable - 服務器當前不能處理客戶端的請求,一段時間後可能恢復正常。
一般http中存在如下問題:
-
請求信息明文傳輸,容易被竊聽截取。
-
數據的完整性未校驗,容易被篡改
-
沒有驗證對方身份,存在冒充危險
HTTPS的缺點
-
HTTPS協議多次握手,導致頁面的加載時間延長近50%;
-
HTTPS連接緩存不如HTTP高效,會增加數據開銷和功耗;
-
申請SSL證書需要錢,功能越強大的證書費用越高。
-
SSL涉及到的安全算法會消耗 CPU 資源,對服務器資源消耗較大。
總結HTTPS和HTTP的區別
-
HTTPS是HTTP協議的安全版本,HTTP協議的數據傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協議進行了加密處理。
-
http和https使用連接方式不同,默認端口也不一樣,http是80,https是443。