HTTP HTTPS

HTTP

超文本傳輸協(xié)議 Hyper Text
Transfer Protocol,是符合TCP標(biāo)準(zhǔn)的應(yīng)用層,以明文方式發(fā)送內(nèi)容,不提供任何方式的數(shù)據(jù)加密。

請(qǐng)求方法

GET POST PUT HEAD OPTIONS DELETE TRACE CONNECT

請(qǐng)求頭

通用頭 請(qǐng)求頭 響應(yīng)頭 實(shí)體頭

連接
  1. 短連接: 1.0默認(rèn)使用短連接,即每次請(qǐng)求都要重新發(fā)起連接,數(shù)據(jù)交換結(jié)束即關(guān)閉連接
  2. 長(zhǎng)連接:1.1起默認(rèn)使用長(zhǎng)連接,連接建立后不斷開(kāi)。
各版本
1.0
  1. 默認(rèn)使用短連接
  2. 使用if-modified-since expires來(lái)做緩存判斷標(biāo)準(zhǔn)
  3. 存在帶寬浪費(fèi)現(xiàn)象,比如客戶端僅需要對(duì)象的一部分,服務(wù)端將整個(gè)對(duì)象送來(lái)
1.1
  1. 默認(rèn)使用長(zhǎng)連接
  2. 引入更多緩存判斷標(biāo)準(zhǔn)Etag if-None-Match
  3. 允許請(qǐng)求資源的某個(gè)部分
  4. 新增了24個(gè)狀態(tài)碼
2.0
  1. 允許多路復(fù)用,做到同一個(gè)連接并發(fā)處理多個(gè)請(qǐng)求
  2. 支持二進(jìn)制編碼
  3. 將相同的首部進(jìn)行壓縮,不重復(fù)傳輸
  4. 流量控制
  5. 支持服務(wù)器推送(CSS和JS一起發(fā)送),不僅只是客戶端發(fā)起請(qǐng)求,服務(wù)端可以自己發(fā)送一些數(shù)據(jù)。
3.0

1、QUIC (Quick UDP Internet Connections)是基于UDP協(xié)議的。
2、解決了 TCP 的隊(duì)頭阻塞問(wèn)題(某一個(gè)流的數(shù)據(jù)有丟包,則同樣會(huì)阻塞在它之后傳輸?shù)牧鲾?shù)據(jù)傳輸)。而 http3.0 中不同的流之間真正的實(shí)現(xiàn)相互獨(dú)立傳輸,互不干擾。
3、在切換網(wǎng)絡(luò)時(shí)的依舊保持連接。

狀態(tài)碼
狀態(tài)碼 解釋
100 服務(wù)器收到了請(qǐng)求,請(qǐng)客戶端繼續(xù)發(fā)送 1XX是1.1版本新定義的,可以優(yōu)化某些場(chǎng)景,比如:客戶端有一個(gè)較大的文件需要上傳并保存,但是客戶端并不知道服務(wù)端是否愿意接受這個(gè)文件,所以希望在消耗網(wǎng)絡(luò)資源進(jìn)行傳輸之前,先詢問(wèn)服務(wù)器的意愿,實(shí)際操作為,請(qǐng)求頭加上Expect: 100-coninue, 若服務(wù)器接受,返回100,否則417
200 請(qǐng)求成功
201 成功請(qǐng)求并創(chuàng)建了新資源
202 已接受請(qǐng)求,但未處理完成
203 非授權(quán)信息
204 服務(wù)器成功處理,但未返回內(nèi)容
301 請(qǐng)求的資源已被永久的移動(dòng)到新URL,返回信息會(huì)包括新的URL
302 資源臨時(shí)被移動(dòng),客戶端應(yīng)繼續(xù)使用原有URL
303 使用GET和POST請(qǐng)求查看其他地址
304 請(qǐng)求已被允許,但文檔的內(nèi)容并沒(méi)有改變(緩存)
305 所請(qǐng)求的資源必須通過(guò)代理訪問(wèn)
307 使用GET請(qǐng)求重定向
400 請(qǐng)求無(wú)效,前端數(shù)據(jù)與后端數(shù)據(jù)不一致,請(qǐng)求格式不對(duì)
401 當(dāng)前請(qǐng)求需要用戶驗(yàn)證
403 服務(wù)器已經(jīng)得到請(qǐng)求,但是拒絕執(zhí)行,比如身份驗(yàn)證不通過(guò)
404 服務(wù)器無(wú)法根據(jù)客戶端的請(qǐng)求找到資源
405 客戶端請(qǐng)求中的方法被禁止
408 服務(wù)器等待客戶端發(fā)送的請(qǐng)求時(shí)間過(guò)長(zhǎng),請(qǐng)求超時(shí)
410 客戶端請(qǐng)求的資源已經(jīng)不存在
413 由于請(qǐng)求的實(shí)體過(guò)大,服務(wù)器無(wú)法處理,因此拒絕
414 請(qǐng)求的URL過(guò)長(zhǎng)
415 服務(wù)器無(wú)法處理請(qǐng)求附帶的媒體格式
416 客戶端請(qǐng)求的范圍無(wú)效
500 服務(wù)器內(nèi)部錯(cuò)誤,無(wú)法完成請(qǐng)求
501 這個(gè)狀態(tài)碼不常見(jiàn),意思是未實(shí)現(xiàn),這個(gè)解釋會(huì)給人誤導(dǎo),并不是意味著我們?cè)L問(wèn)了一個(gè)未實(shí)現(xiàn)的api,而是服務(wù)器目前不具備滿足您對(duì)該內(nèi)容請(qǐng)求的功能, 比如服務(wù)器脫機(jī)了
503 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)無(wú)法處理客戶端的請(qǐng)求
505 服務(wù)器不支持請(qǐng)求的http協(xié)議的版本

HTTPS

HTTPS在HTTP的基礎(chǔ)上加入了SSL協(xié)議,SSL依靠證書(shū)來(lái)驗(yàn)證服務(wù)器的身份,并未瀏覽器和服務(wù)器之間的通信加密。簡(jiǎn)單來(lái)說(shuō)是HTTP的安全版。
SSL(Secure Sockets Layer)最初由網(wǎng)景公司設(shè)計(jì)(1994),用來(lái)加密HTTP協(xié)議傳輸?shù)臄?shù)據(jù).

主要區(qū)別

  1. HTTPS需要到CA申請(qǐng)證書(shū),一般需要一定費(fèi)用
  2. HTTPS安全性更高
  3. HTTP的默認(rèn)端口是80,HTTPS是443
  4. HTTP本身是無(wú)狀態(tài)的,非常簡(jiǎn)單的協(xié)議;HTTPS是由SSL+HTTP構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,它是有狀態(tài)的。
  5. https更消耗時(shí)間和資源(ssl部分需額外花費(fèi)三倍時(shí)間)
  6. https在SEO方面,谷歌搜索引擎算法中給了https加密的網(wǎng)站更高的排名。

HTTPS的工作原理

  1. 用戶在瀏覽器輸入一個(gè)https網(wǎng)址,連接到對(duì)應(yīng)server的443端口
  2. 采用HTTPS協(xié)議的服務(wù)器必須要有一套數(shù)字證書(shū),可以自己制作,也可以向組織申請(qǐng),自己制作的證書(shū)需要客戶端驗(yàn)證通過(guò)才可以繼續(xù)訪問(wèn)。
    這個(gè)證書(shū)就是一對(duì)公鑰和私鑰。私鑰相當(dāng)于鑰匙,公鑰相當(dāng)于鎖,
  3. 服務(wù)端傳送證書(shū)給客戶端(公鑰,相當(dāng)于把鎖給別人,別人可以用這把鎖把重要的東西鎖起來(lái),然后發(fā)給你,因?yàn)橹挥心阋粋€(gè)人有鑰匙,所以只有你才能看到)
  4. 客戶端解析證書(shū),由客戶端的TLS來(lái)完成。
    TLS/SSL 安全傳輸層協(xié)議,用于在兩個(gè)通信應(yīng)用程序之間提供保密性和數(shù)據(jù)完整性。TLS是SSL的升級(jí)版,二者經(jīng)?;煊茫【幰舱f(shuō)不清楚,總之是先有了SSL1.0 2.0,但各種bug,后來(lái)直接推出了TLS1.0,又有了SSL3.0。
    那么TLS確認(rèn)保證公鑰不是被篡改的。TLS會(huì)確認(rèn)證書(shū)中的頒發(fā)機(jī)構(gòu)和過(guò)期時(shí)間,只要證書(shū)是可信的,那么公鑰就是可信的。
    如果證書(shū)沒(méi)有問(wèn)題,就會(huì)生成一個(gè)隨機(jī)值,然后用公鑰對(duì)該隨機(jī)值進(jìn)行加密。
  5. 客戶端傳送隨機(jī)值給服務(wù)端
  6. 客戶端用私鑰解密公鑰(鎖)之后,得到隨機(jī)值,然后之后的傳輸都用該隨機(jī)值所謂私鑰進(jìn)行對(duì)稱加密傳遞信息。
對(duì)稱加密和非對(duì)稱加密方法列舉
  1. 非對(duì)稱加密: RSA DSA
  2. 對(duì)稱加密: AES RC4
  3. HASH加密: MD5 SHA1
HTTPS的優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
  1. 安全
缺點(diǎn)
  1. 握手階段費(fèi)時(shí)
  2. https 緩存不如 http 高效,增加數(shù)據(jù)開(kāi)銷。
  3. SSL 證書(shū)消耗成本,功能越強(qiáng)大的證書(shū)費(fèi)用越高。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容