天天看點

HTTP 協定學習筆記

TCP 三次握手詳情

用戶端    ------------------------->   服務端      

1 syn

<--------------------

2 syn = syn + 1;ack

---------------------->

3 ack = ack + 1

DNS 服務

本地機器通路一個域名的時候,先檢視本地的host檔案,windows的host檔案一般在 C:\Windows\System32\drivers\etc 目錄下,linux系統的host檔案一般在 /etc 目錄下。如果在本地host檔案中沒有查到域名的資訊,就向遠端DNS服務商發起請求。一個比較好的驗證方法,利用ping指令。

URL & URI

url:統一資源定位符

uri:統一資源辨別符

絕對URI

http://user:[email protected]:80/xxx/index.html?uid=1#ch1      

和mysql的驅動很類似:

jdbc:mysql://127.0.0.1:3306/shengqian?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false      

HTTP 方法

get:請求通路已被URI辨別的資源

post:用來傳輸實體的主體

put:傳輸檔案

head:隻傳回get方法的頭部

delete:删除指定檔案

options:詢問支援的方法

trace:讓web伺服器端将之前的請求通信傳回給用戶端的方法,可以查詢請求的加工(在代理中轉的地方)

connect:在與代理伺服器通信時建立隧道,實作用隧道協定進行TCP通信

http 首部

  • 首部字段
  • 請求首部字段
  • Accept:使用者代理可處理的媒體類型
  • Accept-Charset:優先的字元集
  • Accept-Encoding:優先的内容編碼
  • Accept-Language:優先的語言
  • Authrozation:Web認證資訊
  • Expect:期待伺服器的特定行為
  • From:使用者的電子郵箱位址
  • Host:請求資源所在伺服器
  • If-Match:比較實體标記(ETag)
  • If-Modified-Since:比較資源的更新時間
  • if-None-Match:比較實體标記(與 If-Match 相反)
  • If-Range:資源未更新時發送實體Byte的範圍請求
  • If-Unmodified-Since:比較資源的更新時間
  • Max-Forwards:最大傳輸逐跳數
  • Proxy-Authorization:代理伺服器要求用戶端的認證資訊
  • Range:實體的位元組範圍請求
  • Referer:對請求中URI的原始擷取方
  • TE:傳輸編碼的優先級
  • User-Agent:HTTP用戶端程式的資訊
  • 通用首部字段
  • Cache-Control:控制緩存的行為:參數可選,用逗号分隔

    * 緩存請求字段

    - no-cache:強制向源伺服器再次驗證

    - no-store:不緩存請求或響應的任何内容

    - max-age=[秒]:響應的最大Age值

    - max-stable():接收已經過期的響應

    - min-fresh=[]:期望在指定時間内的響應仍有效

    - no-transform:代理不可更改媒體類型

    - only-if-cached:從緩存擷取資源

    - cache-extension:新指令标記(token)

    * 緩存響應字段

    - public:可向任一方提供響應的緩存

    - pricate:僅向特定使用者傳回響應

    - no-cache:緩存前必須先确認其有效性

    - no-store:不緩存請求或響應的任何内容

    - no-transform:代理不可更改媒體類型

    - must-revalidate:可緩存但必須再向源伺服器進行确認

    - proxy-revalidate:要求中間緩存伺服器對緩存的響應有效性再進行确認

    - max-age = []:響應的最大Age值

    - s-maxage = []:公共緩存伺服器響應的最大Age值

    - cache-extension:新指令标記(token)

  • Connection:逐跳首部、連接配接的管理
  • Date:建立封包的日期
  • Pragma:封包指令
  • Trailer:封包末端的首部一覽
  • Transfer-Encoding:指定封包主體的傳輸編碼方式
  • Upgrade:更新為其他協定
  • Via:代理伺服器的相關資訊
  • Warning:錯誤通知
  • 實體首部字段
  • Allow:資源可支援的HTTP方法
  • Content-Encoding:實體主體适用的編碼方式
  • Content-Language:實體主體的自然語言
  • Content-Length:實體主體的大小
  • Content-Location:替代對應資源的URI
  • Content-MD5:實體主體的封包摘要
  • Content-Range:實體主體的位置範圍
  • Content-Type:實體主體的媒體類型
  • Expires:實體主體過期的日期時間
  • Last-Modified:資源的最後修改日期時間
  • 響應首部字段
  • Accept-Ranges:是否接受位元組範圍的請求
  • Age:推算資源建立經過時間
  • Etag:資源的比對資訊
  • Location:令用戶端重定向至指定URI
  • Proxy-Authenticate:代理伺服器對用戶端的認證資訊
  • Retry-After:對再次發起請求的時機要求
  • Server:HTTP伺服器的安裝資訊
  • Vary:代理伺服器存的管理資訊
  • WWW-Authenticate:伺服器對用戶端的認證資訊