http协议组成
摘要
本文主要內容介紹什么是http協議
了解http協議之前我們先了解一下當我們輸入一個url到頁面渲染出來,這個過程發什么了什么呢~
網絡開啟線程開始解析url
DNS解析域名,查詢IP
建立TCP/IP鏈接
然后發送請求
什么是HTTP協議:
HTTP即超文本傳輸協議,作為網絡協議中的應用層的協議,它是一種文明的協議,傳輸過程中傳輸內容對外是可見的。
HTTP的特點:
HTTP協議是基于TCP/IP通信以協議來傳遞數據的,數據類型可以是JSON、表單、HTML、圖片等等
HTTP默認端口號為80
HTTP是協議是無狀態的,每一次的請求與響應彼此沒有任何關系(這也是為什么產生Session、Cookie、Token的原因)
HTTP請求組成部分
請求行
請求行有請求方法、URL字段、HTTP協議版本號三部分組成
HTTP請求方式:POST GET PUT DELETE OPTIONS等等
在這里需要了解到,HTTP請求也分為簡單請求跟復雜請求
那么一個HTTP請求如何滿足是簡單請求:
1HTTP請求類型為:HEAD、GET、POST
2HTTP頭包含:Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type
Content-Type僅能是application/x-www-form-urlencoded、multipart/form-data、text/plain之一
復雜請求:
如果不滿足簡單請求的條件便是復雜請求,一個復雜請求的通信,不僅包含通信內容的請求,而且還包含一個預請求。
簡單請求與復雜請求對比:
簡單請求
復雜請求
其中預請求的請求類型為OPTIONS
請求頭
用來向客戶端解釋請求信息
請求報頭常見屬性(這里重點解釋常用的):
Accept:可接受響應類型(application/json、text/plain等)
Accept-Charest:可接收的字符集(utf-8等)
Accept-Encoding:可接受的相應內容的編碼方式(gzip、deflate等)
Accept-Language:可接受的響應內容語言列表(en-US、zh-CN等)
Authorization:http認證信息(oauth認證)
Cache-Control:緩存機制控制(on-cache、on-store、max-age、public、private)
Connection:客戶端優先使用的鏈接類型(keep-alive、upgrade)
User-Agent:瀏覽器的身份標識字符串
Origin:發起一個針對跨域資源共享的請求
If-Modified-Since:上一次響應的Last-Modified的值回當做If-Modified-Since的值發送給服務器
If-None-Match:上一次響應的ETag的值會當做If-None-Match的值發送給服務器
Referer:表示跳轉到當期那頁面的之前頁面
消息主題:前臺向后臺發送的數據
HTTP響應
我們用抓包工具抓取一個響應如圖
響應行
響應行由HTTP協議版本號、狀態碼,以及狀態描述三部分組成(例如途中:HTTP/1.1 200 OK)
響應頭組成部分
Cache-Control:no-store no-cache max-age等等
Date:響應時間
Expires:新鮮度,通知瀏覽器過期前可以使用副本
Content-Length:響應內容大小
Content-Type:響應類型
ETag:校驗值,校驗從服務器端獲取內容是否發生改變
響應正文:服務器發送給客戶端的內容
總結
- 上一篇: Spring RestTemplate
- 下一篇: Jenkins Html Rport