http那些事:http\http2\https

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或者其餘端口。css

  • HTTP是無鏈接:無鏈接的含義是限制每次鏈接只處理一個請求。服務器處理完客戶的請求,並收到客戶的應答後,即斷開鏈接。採用這種方式能夠節省傳輸時間。
  • HTTP是媒體獨立的:這意味着,只要客戶端和服務器知道如何處理的數據內容,任何類型的數據均可以經過HTTP發送。客戶端以及服務器指定使用適合的MIME-type內容類型。
  • HTTP是無狀態:HTTP協議是無狀態協議。無狀態是指協議對於事務處理沒有記憶能力。缺乏狀態意味着若是後續處理須要前面的信息,則它必須重傳,這樣可能致使每次鏈接傳送的數據量增大。另外一方面,在服務器不須要先前信息時它的應答就較快。

HTTP請求頭

--Host:初始URL中的主機和端口segmentfault

--Accept:瀏覽器可接受的MIME類型瀏覽器

--Accept-Charset:瀏覽器可接受的字符集服務器

--Accept-Encoding:瀏覽器可以進行解碼的數據編碼方式,好比gzip。架構

--Accept-Language:瀏覽器所但願的語言種類ide

--Connection:表示是否須要持久鏈接。優化

--Content-Length:表示請求消息正文的長度。編碼

--Cookie:Cookie字符串 --Referer:包含一個URL,用戶從該URL表明的頁面出發訪問當前請求的頁面。加密

--User-Agent:瀏覽器類型,若是Servlet返回的內容與瀏覽器類型有關則該值很是有用。spa

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推送

圖片描述

https

詳細的https原理和實現;主要是加密過程:
圖片描述

相關文章
相關標籤/搜索