【HTTP】http協議入門

http介紹

英文名:HyperText Transfer Protocol
中文名:超文本傳輸協議
方式:IP+端口,http默認端口爲80,https默認端口爲443;
功能:在服務器和客戶機之間傳輸超文本文件
模式:請求響應模式
版本:

  1. HTTP/1.0:非持續連接
  2. HTTP/1.1:目前常使用的,持續連接
  3. HTTP-NG:下一代http協議

狀態碼

在這裏插入圖片描述

常見頭信息

User-Agent:告訴Http服務器,客戶端使用的操作系統和瀏覽器名稱和版本(這也是區分pc端或者app端的方式) Clint頭域: Accept:瀏覽器端可以接受的媒體類型(MIME); Accept-Charset:瀏覽器可接受的字符集; Accept-Encoding:瀏覽器申明自己接受的編碼方法,壓縮方式,是否支持壓縮,支持什麼壓縮方法 Accept-Language:申明自己接受的語言 User-Agent:客戶端使用的操作系統各瀏覽器的名稱和版本 clint頭域的作用,客戶端和服務器端要進行通信,那麼客戶端就得向服務器申明自己交流的方式(User-Agent)、交流的語言(Accept-Language)、交流的字體(accept-Encoding),已經客戶端接受的內容(accept)等 Cache頭域: If-Modified-Since:把瀏覽器端緩存頁面的最後修改時間發送到服務器上,服務器會把這個時間與時間文件的修改時間進行比對 ,時間一直返回304使用本地緩存數據,時間不一致返回200和新的文件內容,客戶端接到之後會丟棄舊文件再把新文件緩存起來並顯示在瀏覽器中 。 If-None-Match:和ETag一起工作,工作原理是HTTP Response中添加ETag信息,當用戶再次請求該資源時,將在HTTP Request中加入If-None-Match信息(ETag的值)。如果服務器驗證資源的ETag沒有改變(該資源沒有更新),獎返回一個304狀態告訴客戶端使用本地魂村文件。否則將返回200狀態和新的資源和Etage,使用這樣的機制將提高網站的新性能。 Pragma:作用是防止頁面被緩存,在HTTP/1.1版本中,它和Cache-Control:no-cache作用一模一樣 Cache-Control:用來指定Response-Request遵循的緩存機制,如下: Cache-Control:Public可以被任何緩存所緩存() Cache-Control:Private內容只緩存到私有緩存中 Cache-Control:no-cache所有內容都不會被緩存 Cookie/Login頭域 Cookie:最重要的header,獎cookie的值發送給HTTP服務器 Transport頭域 Connection:連接的狀態,keep-alive當打開一個網頁後,客戶端和服務器之前傳輸Http數據到TCP連接誒不會關閉,如果客戶端再次訪問這個服務器的網頁,會繼續使用這條已經建立的連接;close當打開一個請求完成後,客戶端和服務器之前用於傳輸HTTP數據的TCP連接會關閉,當客戶端再次發送請求,需要重新建立TCP連接 Host(發送請求時,該報頭域是必須的):請求報頭域而主要用於指定被請求資源的Internet主機和端口號,他通常從HTTP URL中提取出來的,host中端口號省卻卻表示默認端口後80 Entity頭域 Content-Length:發送給HTTp服務器數據的長度 Content-Type:互聯網媒體類型 Miscellaneous頭域 Referer:提供Request的上下文信息的服務器,告訴服務器我是從哪個連接過來的。 Ajax請求方式 服務器判斷request請求是同步還是異步,如果header中有X-Requested-With:XMLHttpRequest表示爲異步請求,當X-Requested-With:null是爲同步請求