HTTP是基于TCP之上,用來傳輸hypertext文檔的應用層協(xié)議,Tim最開始發(fā)明它的目的就是容易實現(xiàn),所以最初版本的HTTP協(xié)議很簡單,請求就只有一行,響應直接返回HTML內容,請求和響應都沒有Head信息。
隨著Web的發(fā)展,HTTP協(xié)議中添加進了Head,服務器和瀏覽器可以通過head中的字段(如version,content-type等)溝通信息。
HTTP中的一個基本概念是URL,統(tǒng)一資源定位符,用來標識Web中的某個資源,如HTML文檔,視頻,音頻,圖片,script腳本等。URL的格式如下
http(s)://host:port/context/one-resource?param1=val1¶m2=val2#fragment
HTTP是請求/響應模式的,最突出的特點是無狀態(tài),每次請求中都需要包含足夠的信息,這樣可以由不同代理/服務器處理服務請求。
在演進方向上有2個重要特征,一個是RESTful,另外一個是HTTP/2。
- RESTful側重Web應用的架構,規(guī)范資源的操作接口,統(tǒng)一使用HTTP的風格,使用自說明的URL地址,并使用標準的GET,PUT,POST,DELETE跟資源交互。
- HTTP/2側重Web性能,在SPDY協(xié)議的基礎上解決了HTTP 1.1版本中的問題,優(yōu)化了HTTP的性能。最主要的特點是
TCP連接復用
Head壓縮
二進制封裝數(shù)據(jù)
補充:HTTP/2仍然沿用原有的語義,只是在消息傳輸上做了改進(需要瀏覽器和Web服務器加入支持),所以對應用開發(fā)沒有影響。
實用技巧:HTTP抓包
工具 Teleric FiddlerCap
https://www.telerik.com/fiddler/fiddlercap