網頁請求之http和https


基本概念

http:超文本傳輸協議,是互聯網上應用很廣泛的一個網絡協議。它負責完成客戶端到服務端的一系列操作,專門用來傳輸HTML的超媒體文檔等web內容。他是基於TCP協議的應用層協議。http協議是以明文方式發送信息的,所以安全層很低。

https:是基於安全套接字的http協議,是由SSL+http協議構建的可進行加密傳輸、身份認證的網絡協議。

區別

  • http的URL是以http://開頭,而https的URL是以https://開頭。
  • http是明文傳輸,安全性低,而https可以進行加密傳輸,身份認證。
  • http的標准端口是80,而https的標准端口是443。

http請求

常見的http請求方法:

  • GET:從服務器獲得資源
  • POST:客戶端向服務器端提交資源
  • PUT:修改服務器資源
  • DELETE:修改服務器資源

http請求報文和響應報文

請求報文格式:請求行、請求頭部、請求正文。

響應報文格式:狀態行、響應頭部、響應正文。

常見的http狀態碼

  • 1XX:信息提示

  • 2XX:成功狀態碼(200:OK)

  • 3XX:重定向

  • 4XX:客戶端錯誤(404:Not Found)

  • 5XX:內部服務器錯誤

http首部字段

首部字段分為四種類型:

  • 通用首部字段:請求和響應報文都會使用的首部字段。
  • 請求首部字段:客戶端向服務器發送請求使用的首部字段。
  • 響應首部字段:從服務器向客戶端響應使用的首部字段。
  • 實體首部字段:針對請求和響應報文的實體部分使用的首部字段。

一次完整的http請求

1、在地址欄輸入網站的url地址。

2、輸入url地址后,瀏覽器會查找瀏覽器緩存、系統緩存、路由緩存。如果有緩存就可以直接顯示(在Cache—Control的max_age字段中有緩存的有效時間),如果沒有就下一步。

3、通過DNS獲取url對應的ip地址。通過本機的host文件中查找是否有url對應的ip地址,如果沒有就請求DNS進行ip地址的獲取。

4、建立TCP連接。通過TCP三次握手建立連接。

5、瀏覽器向web服務器發送請求。

6、瀏覽器給web服務器發送請求頭信息。如果是POST還要發送請求體。

7、web服務器進行響應。

8、web服務器發送響應頭消息。

9、web服務器發送數據。以響應頭里面的content-type描述的格式發送數據。

10、web服務器關閉連接。web服務器向瀏覽器發送了應答數據之后,就要關閉tcp連接(TCP四次握手關閉連接),如果添加了connection:keep-alive就繼續保持連接。

TCP三次握手

  • 第一次握手:建立連接時,客戶端發送syn包(syn=x)並進入SYN_SENT狀態,等待服務器確認。
  • 第二次握手:服務器收到syn包,必須確認客戶的SYN(SYN=x+1),同時自己也發送一個SYN包(syn=y),即SYN+ACK包,此時服務器進入SYN_RECV狀態。
  • 第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=y+1),此包發送完畢,客戶端和服務器進入TCP連接成功狀態,完成三次握手。

TCP四次揮手

  • 第一次揮手:客戶端發出fin,並且停止發送數據。
  • 第二次揮手:服務器收到fin,發出ack。
  • 第三次揮手:服務器發送fin給客戶端。
  • 第四次揮手:客戶端發送ack給服務器。
    個人微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM