2017-04-25

HTTP

? ? ? HTTP: HyperText Transfer Protocol。超文本傳輸協(xié)議。一種分布式的,協(xié)作的,超媒體信息系統(tǒng)的協(xié)議,面向應(yīng)用層。

? ? ? 允許信息以類MIME消息的格式傳送,包括傳輸數(shù)據(jù)的元信息和對(duì)請(qǐng)求/響應(yīng)語句的修飾。

? ? ? 請(qǐng)求消息。

Method

Request-URL

HTTP-Version

General-Header;Request-Header;Entity-Header

Message-body

? ? ? 響應(yīng)消息。

HTTP-Version

Status-Code

Reason-Phrase

General-Header;Request-Header;Entity-Header

Message-body

看一眼Google的general消息(chrome)。

請(qǐng)求的方法:

GET:獲取Request-URL制定的信息,以實(shí)體的格式。

POST:請(qǐng)求源服務(wù)器接受請(qǐng)求中的實(shí)體作為請(qǐng)求資源的一個(gè)新的從屬物。(提交一個(gè)鍵值對(duì)的表單)

GET與POST的區(qū)別:

GET向服務(wù)器提交的request,參數(shù)在URL地址中,可以被直觀看見,大小有限制(一般取決于所用瀏覽器對(duì)URL長度的控制,chrome為8182字符)。POST將內(nèi)容放在消息Message-body中,沒有大小限制。

GET是等冪方法,POST不是。

等冪方法:多個(gè)相同請(qǐng)求的副作用與單個(gè)請(qǐng)求的副作用一直,即值不變,請(qǐng)求相同,不論次數(shù),結(jié)果相同。

響應(yīng)的狀態(tài)碼:

1XX,通知類的。 100:繼續(xù);101:切換協(xié)議。

2XX,成功的。 200:OK;201:已創(chuàng)建;202:接受。

3XX,重定向的。301永久移動(dòng);302:發(fā)現(xiàn)(暫時(shí)移動(dòng))。

4XX,客戶端錯(cuò)誤。400:Bad Request;401:未授權(quán);403:Forbidden;404:Not Found;405:MethodNot Allowed;408:請(qǐng)求超時(shí)。

5XX 服務(wù)器錯(cuò)誤。500:服務(wù)器內(nèi)部錯(cuò)誤;505:HTTP版本不支持。

絕對(duì)URI地址:

協(xié)議名稱://服務(wù)器地址:服務(wù)器端口號(hào)/帶層次的文件路徑?查詢字符#片段標(biāo)識(shí)符

看一眼谷歌的搜索地址:

HTTP的無狀態(tài)。

因?yàn)镠TTP是一種無狀態(tài)協(xié)議,每一次的信息都沒有關(guān)于上一次信息的記錄,所以,通過在客戶端保存cookie的方式記錄,再需要的時(shí)候發(fā)給對(duì)方。

看一眼Google的cookie。

在響應(yīng)消息中,設(shè)置客戶端的cookie:

在請(qǐng)求消息中,發(fā)送cookie(經(jīng)過加密的):

Cookie屬性。

Expires:絕對(duì)過期時(shí)間。采用格式:星期,日-月-年 時(shí):分:秒 GMT(格林威治時(shí)間)。

Max-Age:存活時(shí)間。以秒為單位,存在Expires和Max-Age時(shí),以后者為準(zhǔn)。

Path:指定與cookie關(guān)聯(lián)的網(wǎng)址。

Domain:目標(biāo)域,默認(rèn)服務(wù)器的主機(jī)名。

Secure:必須通過安全協(xié)議傳送。

HTTPOnly:不允許被腳本APIs獲取。

HTTPS(HTTP secure)

通信加密,HTTP可以與SSL(Secure Socket Layer,安全套接層)或TLS(Transfer Layer Security,安全層傳輸協(xié)議)的組合。與SSL的組合,成為HTTPS或HTTP OverSSl;與TLS的成為 HTTP Over TLS。

SSL加密過程:

服務(wù)器與客戶互相協(xié)商安全組件。(客戶發(fā)送一個(gè)自己支持的安全組件,由服務(wù)器挑選后返回一個(gè)結(jié)果)

服務(wù)器用自己的公開密匙向數(shù)字證書認(rèn)證機(jī)構(gòu)發(fā)送,數(shù)字證書認(rèn)證機(jī)構(gòu)用機(jī)構(gòu)的私有密匙給服務(wù)器的公有密匙署數(shù)字簽名,兵頒發(fā)公匙證書。服務(wù)器將簽名公匙和證書發(fā)給客戶。

客戶用數(shù)字認(rèn)證機(jī)構(gòu)的公匙驗(yàn)證簽名的有效性。(公匙一般內(nèi)置在瀏覽器中)??蛻羯梢粋€(gè)隨機(jī)數(shù),作為pre-master secret,用服務(wù)器的公匙加密后,發(fā)給服務(wù)器。

服務(wù)器用私有密匙解開pre-master secret,然后生成master secret。

客戶端此時(shí)擁有服務(wù)器的公匙和一個(gè)隨機(jī)數(shù) master secret;服務(wù)器擁有自己的私匙和客戶的master secret。

服務(wù)器對(duì)客戶的認(rèn)證方式:

BASIC(基本認(rèn)證);DIGET(摘要認(rèn)證);SSL客戶端認(rèn)證;FORM BASED(基于表單的認(rèn)認(rèn)證。

最后編輯于
?著作權(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),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評(píng)論 19 139
  • 一、概念(載錄于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434閱讀 8,742評(píng)論 6 152
  • Http協(xié)議詳解 標(biāo)簽(空格分隔): Linux 聲明:本片文章非原創(chuàng),內(nèi)容來源于博客園作者M(jìn)IN飛翔的HTTP協(xié)...
    Sivin閱讀 5,345評(píng)論 3 82
  • 和遺跡般的懸崖一樣 山坡枯萎過 把這里當(dāng)作柳梢的情人有很多 水不止 那朵為你命名的花不落 所有的天色崢嶸 山歌繚繞...
    2020號(hào)閱讀 342評(píng)論 10 25
  • 以下職位面向:2016年畢業(yè)的在校大學(xué)生,除技術(shù)類崗位外,其余職位大都不限專業(yè)。即將在2015年4月下旬截至招聘的...
    650555878492閱讀 1,069評(píng)論 0 6

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