HTTP常見頭域


  近期沒需求,也沒什么心情去看書,就總結一下自己以前看的HTTP協議基礎內容吧。(會很亂,可能不適合一點都沒接觸過HTTP協議的人觀看)

一、HTTP Request header

1、Cache頭域

if-Modified-since:緩存

if-None-Match:可提高性能(在Response中添加ETag信息,客戶端再次請求資源,Request中加入if-None-Match(ETag的值),服務器驗證ETag,若沒改變返回狀態碼304,有改變,返回狀態碼200)

Pragma:防止頁面被緩存

Cache-Control:Response—Request遵循的緩存機制

  public:可以被任何緩存所緩存

  private:內容只緩存在私有緩存中

  no-cache:所有內容都不會被緩存

2、Client頭域

Accept:瀏覽器可以接受的文件類型(Accept:text/html 表示瀏覽器可接受服務器返回的文件類型為text/html)

Accept-Encodig:指定壓縮方法,是否支持壓縮,支持什么壓縮方法(gzip、deflate)

Accept-Language:瀏覽器申明自己的接收語言

User-Accept:告知服務器客戶端使用的操作系統與瀏覽器的名稱和版本

Accept-chareset:瀏覽器申明自己接收的字符集。如gb2312,UTF_8

3、Cookie/Login頭域

Cookie:將cookie的值發送給服務器

4、Entity頭域

Content-Length:發送給HTTP服務器的數據長度

Content-Type:決定文件接收方將以什么形式、什么編碼讀取此文件

5、Miscellaneous頭域

Referer:提供了Request的上下文信息,告訴服務器我是從哪個鏈接過來的

A------>B(B的服務器從Referer中統計有多少用戶是從A過來的)

6、Transport頭域

connection:Keep—alive            TCP連接不會關閉

connection:close                     一個Request完成后,TCP連接關閉

7、Host:發送請求時,該報頭域是必需的。主要用於指定被請求資源的Internet主機和端口號,通常從HTTP URL 中提取出來

 

二、HTTP Response header

1、Cache頭域

Date:生成消息的具體時間和日期

Expires:瀏覽器在指定過期時間內使用本地緩存

2、Cookie/Login頭域

P3P:用戶跨域設置cookie,可以解決iframe跨域訪問cookie的問題

Set-Cookie:重要的header,用於把cookie發送到客戶端瀏覽器,每一個寫入cookie都會生成一個set-cookie

3、Entity頭域

ETag:與if-None-Match配合使用

Last-Modified:用於指示資源的最后修改日期和時間

Content-Type:Web服務器告知瀏覽器自己響應對象的類型和字符集

Content-Length:指明實體正文長度,以字節方式存儲的十進制數字表示。在數據下行中,要預先在服務器中緩存所有數據,然后所有數據一並發給客戶端

Content-Encoding:Web服務器表明自己用了什么壓縮方式(gzip、deflate)壓縮響應中的對象

Content-Language:服務器告知瀏覽器自己響應的對象語言

4、Miscellaneous頭域

Server:指明HTTP服務器的軟件信息

X-Powered-By:表明網站是用什么技術開發的

X-AspNet-Version:如果網站是用Asp/Net開發的,這個header用來表明Asp/Net的版本

5、Transport頭域

connection:Keep—alive            TCP連接不會關閉

connection:close                     一個Request完成后,TCP連接關閉

6、Location頭域

Location:用於重定向一個新的位置,包括新的URL地址

 

三、網絡分層(這個是順手加上)

  下層只會向上層提供服務,但不會從上層獲取服務。

1、OSI模型(從低到高)

物理層---->數據鏈路層---->網絡層---->傳輸層---->會話層---->表示層---->應用層

2、TCP/IP模型(從低到高)

網絡接口層------>網絡層(IP)------>傳輸層(TCP、UDP)------>應用層(HTTP/FTP等協議)

3、實際應用中的因特網協議棧

物理層---->鏈路層---->網絡層---->傳輸層---->應用層

 

四、HTTP認證過程

1、客戶端發送HTTP Request給服務器;

2、Request中未包含Authorization header,服務器會返回一個401錯誤給客戶端,且在Response中的header“www-Authenticate”中添加信息;

3、客戶端將用戶名和密碼以base64加密后,放在Authorization中發送給服務器,認證成功;

4、服務器將Authorization header中的用戶名和密碼去除,進行驗證。如果驗證通過,將根據請求發送資源給客戶端;

  HTTP OAuth認證:OAuth對於http來說,就是放在Authorization header中的不是用戶名密碼,而是一個token(令牌)。

  客戶端的使用:客戶端若要跟“使用基本認證的網站”進行交互,將用戶名密碼加載Authorization header中即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM