瀏覽器 - HTTP
- 簡介:HTTP 在 TCP 的基礎上,規定了 Request-Response 的模式, 純粹的文本協議,定了使用 TCP 協議來傳輸文本格式的一個應用層協議。
- 協議格式

HTTP Method(方法)
GET POST HEAD PUT DELETE CONNECT OPTIONS TRACEsegmentfault
- 經過地址欄訪問頁面都是 GET 方法。表單提交產生 POST
- HEAD 則是跟 GET 相似,只返回請求頭,多數由 JavaScript 發起
- PUT 和 DELETE 分別表示添加資源和刪除資源,語義資源並不是強約束
- CONNECT 如今多用於 HTTPS 和 WebSocket
- OPTIONS 和 TRACE 通常用於調試,多數線上服務都不支持
- HTTP Status code(狀態碼)和 Status text

- 304: 客戶端本地已經有緩存的版本,而且在 Request 中告訴了服務端,當服務端經過時間或者 tag,發現沒有更新的時候,就返回一個不含 body 的 304 狀態。
- 實際上 301 更接近於一種報錯,提示客戶端下次別來了
- 1xx 的狀態被瀏覽器 http 庫直接處理掉了,不會讓上層應用知曉
HTTP Head (HTTP 頭)

-響應頭瀏覽器

HTTP Request Body
常見body格式緩存

form標籤:默認會產生 application/x-www-form-urlencoded,當有文件上傳時,則會使用 multipart/form-data安全
HTTPS
- 做用:一是肯定請求的目標服務端身份,二是保證傳輸的數據不會被網絡中間節點竊聽或者篡改。
- 區別:使用加密通道來傳輸 HTTP 的內容,TLS 構建於 TCP 協議之上,它其實是對傳輸的內容作一次加密,因此從傳輸內容上看,HTTPS 跟 HTTP 沒有區別
HTTP 2.0
- 改進:一是支持服務端推送,二是支持 TCP 鏈接複用
提早把一部份內容推送給客戶端,放入緩存當中,這能夠避免客戶端請求順序帶來的並行度不高,從而致使的性能問題。
同一個 TCP 鏈接來傳輸多個 HTTP 請求,避免了 TCP 鏈接創建時的三次握手開銷,和初建 TCP 鏈接時傳輸窗口小的問題。
補充知識
- DNS查詢獲得IP
- tcp/ip的併發限制
- get和post的區別
個人總結: https://segmentfault.com/a/11...
- 五層因特網協議棧
-
長鏈接與短鏈接服務器
- TCP就是數據傳輸的通道(先創建通道再傳輸數據,可以保證安全)
- TCP保活功能:爲服務器應用提供,服務器應用但願知道客戶主機是否崩潰
- http2.0與http1.1的顯著不一樣點:
- 強緩存與協商緩存