http簡介
HTTP協議是Hyper Text Transfer Protocol(超文本傳輸協議)的縮寫,是用於從萬維網(WWW:World Wide Web )服務器傳輸超文本到本地瀏覽器的傳送協議。。
HTTP是一個基於TCP/IP通信協議來傳遞數據(HTML 文件, 圖片文件, 查詢結果等)。
http工作原理和 headers
HTTP協議工作於客戶端-服務端架構為上。瀏覽器作為HTTP客戶端通過URL向HTTP服務端即WEB服務器發送所有請求。
Web服務器有:Apache服務器,IIS服務器(Internet Information Services)等。
Web服務器根據接收到的請求後,向客戶端發送響應信息。
HTTP默認端口號為80,但是你也可以改為8080或者其他端口。
HTTP是無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開連接。採用這種方式可以節省傳輸時間。
HTTP是媒體獨立的:這意味著,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據都可以通過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。
HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。
HTTP請求頭
--Host:初始URL中的主機和端口
--Accept:瀏覽器可接受的MIME類型
--Accept-Charset:瀏覽器可接受的字符集
--Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。
--Accept-Language:瀏覽器所希望的語言種類
--Connection:表示是否需要持久連接。
--Content-Length:表示請求消息正文的長度。
--Cookie:Cookie字符串 --Referer:包含一個URL,用戶從該URL代表的頁面出發訪問當前請求的頁面。
--User-Agent:瀏覽器類型,如果Servlet返回的內容與瀏覽器類型有關則該值非常有用。
HTTP響應頭
--Access-Control-Allow-Origin: 指定哪些站點可以參與跨站資源共享
--Content-Length: 響應體的字節長度
--Content-Type: 設置響應體的MIME類型
--Date: 消息發送的日期和時間
--Server: 服務器名稱
--Set-Cookie: 設置HTTP Cookie
--Transfer-Encoding 設置傳輸實體的編碼格式,目前支持的格式: chunked, compress, deflate, gzip, identity
http方法
GET 用於獲取數據
HEAD 與GET請求的響應相同的響應,但沒有響應體
POST 用於將實體提交到指定的資源,通常導致狀態或服務器上的副作用的更改
PUT 用於創建或更新指定資源
DELETE 刪除指定的資源
http2
HTTP2.0時代不再需要的優化 --多域名突破連接數限制 --資源合併(js/css合併,css sprites,內嵌base64圖片)
HTTP2.0的請求優先級 --因為資源是混合發送的,所以對不同的資源要設置優先級,保證js/css優先發送,圖片後發送
HTTP2.0首部壓縮
HTTP2.0推送