淺談HTTP與其工做流程

1、什麼是HTTP協議html

HTTP協議(Hyper Text Transfer Protocol)翻譯過來是超文本傳輸協議,也是一種restful風格的協議,在web開發和APP接口開發都很經常使用。web

HTTP協議是應用層協議,一樣是應用層協議的還有FTP,MQTT,SMAP等,但總結來講都是基於TCP/IP之上傳輸,應用層的協議能夠理解爲根據不一樣的協議傳輸不一樣格式的字節。瀏覽器

好比如下是一個HTTP協議報文緩存

那麼在應用層的報文就是服務器

01001000 01010100 01010100 01010000 ...restful

翻譯過來就是 HTTP ...,應爲01001000對應的就是H,01010100對應的是T網絡

 因此http請求與響應能夠理解爲是字符串的交流,相對來講,HTTP是一種比較重的協議,因此在一些網絡受限的狀況下不建議使用該協議,能夠根據需求設計出更符合業務的tcp

協議,能夠比較好的減輕對帶寬的壓力。編碼

2、HTTP的工做流程翻譯

1.經過DNS服務器將域名解析爲IP地址

(1)查找本機hosts文件的是否有該域名的映射關係,有則直接使用該映射關係對應的ip地址

(2)從DNS緩存中查找該域名的映射關係,有則直接使用

(3)當緩存沒有該域名的映射關係,則須要訪問外網的DNS服務器來解析域名

2.知道目標服務器的ip地址和域名後就能夠進行tcp的三次握手創建鏈接

3.創建鏈接以後根據需求在應用層封裝http請求報文發送到目的服務器

4.目的服務器收到請求以後進行業務處理,而後返回響應報文

3、HTTP協議經常使用請求頭和響應頭

1.經常使用請求頭

Accept-Charset 用於指定客戶端接受的字符集

Accept-Encoding 可接受的內容編碼 

Keep-Alive 是否關閉鏈接

Content-Type 這是在開發中常常使用的,用於定義媒體類型,即你的請求體內容是如何存放的,在開發APP接口時,須要在接口文檔註明媒體類型,不然APP可能會發送服務器不接受的媒體類型

2.經常使用響應頭

Content-Type 告訴服務端響應內容的類型,客戶端能夠根據類型進行不一樣解析,好比客戶端瀏覽器,那麼經常使用的就是 Content-Type:text/html:Charset=UTF-8

相關文章
相關標籤/搜索