亚洲情人网-亚洲情人-亚洲欧洲综合-亚洲欧洲自拍-欧美专区亚洲

e621(e621小馬)

  • 生活
  • 2023-04-26 14:15

文章將包含以下幾方面內(nèi)容:

HTTP協(xié)議解讀與HTTP相關(guān)組件與HTTP相關(guān)協(xié)議HTTP組成HTTP協(xié)議優(yōu)缺點(diǎn)HTTP協(xié)議解讀

HTTP是一種超文本傳輸協(xié)議(HypertextTransferProtocol),超文本傳輸協(xié)議可以進(jìn)行文字分割:超文本(Hypertext)、傳輸(Transfer)、協(xié)議(Protocol),它們之間的關(guān)系如下:

分別對(duì)這三個(gè)名次做一個(gè)解釋:

超文本

兩臺(tái)電腦之間只能傳輸簡(jiǎn)單文字,后面還想要傳輸圖片、音頻、視頻,甚至點(diǎn)擊文字或圖片能夠進(jìn)行超鏈接的跳轉(zhuǎn),那么文本的語(yǔ)義就被擴(kuò)大了,這種語(yǔ)義擴(kuò)大后的文本就被稱為超文本(Hypertext)。

傳輸

兩臺(tái)計(jì)算機(jī)之間會(huì)形成互聯(lián)關(guān)系進(jìn)行通信,我們存儲(chǔ)的超文本會(huì)被解析成為二進(jìn)制數(shù)據(jù)包,由傳輸載體(例如同軸電纜,***線,光纜)負(fù)責(zé)把二進(jìn)制數(shù)據(jù)包由計(jì)算機(jī)終端傳輸?shù)搅硪粋€(gè)終端的過(guò)程

協(xié)議

網(wǎng)絡(luò)協(xié)議就是網(wǎng)絡(luò)中(包括互聯(lián)網(wǎng))傳遞、管理信息的一些規(guī)范

與HTTP相關(guān)組件

網(wǎng)絡(luò)設(shè)計(jì)者以分層(layer)的方式組織協(xié)議,每個(gè)協(xié)議屬于層次模型之一。每一層都是向它的上一層提供服務(wù)(service),即所謂的服務(wù)模型(servicemodel)。每個(gè)分層中所有的協(xié)議稱為協(xié)議棧(protocolstack)。因特網(wǎng)的協(xié)議棧由五個(gè)部分組成:物理層、鏈路層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。我們采用自上而下的***研究其原理,也就是應(yīng)用層->物理層的方式(了解)。

應(yīng)用層

應(yīng)用層是網(wǎng)絡(luò)應(yīng)用程序和網(wǎng)絡(luò)協(xié)議存放的分層,因特網(wǎng)的應(yīng)用層包括許多協(xié)議。比如HTTP,電子郵件傳送協(xié)議SMTP、端系統(tǒng)文件上傳協(xié)議FTP、還有為我們進(jìn)行域名解析的DNS協(xié)議

傳輸層

輸層在應(yīng)用程序斷點(diǎn)之間傳送應(yīng)用程序報(bào)文,在這一層主要有兩種傳輸協(xié)議TCP和UDP。

TCP是面向連接的,它能夠控制并確認(rèn)報(bào)文是否到達(dá),并提供了擁塞機(jī)制來(lái)控制網(wǎng)絡(luò)傳輸,因此當(dāng)網(wǎng)絡(luò)擁塞時(shí),會(huì)抑制其傳輸速率。

UDP協(xié)議向它的應(yīng)用程序提供了無(wú)連接服務(wù)。它是不具備可靠性的,沒(méi)有流量控制,也沒(méi)有擁塞控制。我們把運(yùn)輸層的分組稱為報(bào)文段(segment)

網(wǎng)絡(luò)層

網(wǎng)絡(luò)層負(fù)責(zé)將稱為數(shù)據(jù)報(bào)(datagram)的網(wǎng)絡(luò)分層從一臺(tái)主機(jī)移動(dòng)到另一臺(tái)主機(jī)。網(wǎng)絡(luò)層一個(gè)非常重要的協(xié)議是IP協(xié)議,所有具有網(wǎng)絡(luò)層的因特網(wǎng)組件都必須運(yùn)行IP協(xié)議。

鏈路層

為了將分組從一個(gè)節(jié)點(diǎn)(主機(jī)或路由器)運(yùn)輸?shù)搅硪粋€(gè)節(jié)點(diǎn),網(wǎng)絡(luò)層必須依靠鏈路層提供服務(wù)。鏈路層的例子包括以太網(wǎng)、WiFi和電纜接入的DOCSIS協(xié)議,因?yàn)閿?shù)據(jù)從源目的地傳送通常需要經(jīng)過(guò)幾條鏈路,一個(gè)數(shù)據(jù)包可能被沿途不同的鏈路層協(xié)議處理,我們把鏈路層的分組稱為幀(frame)。

物理層

雖然鏈路層的作用是將幀從一個(gè)端系統(tǒng)運(yùn)輸?shù)搅硪粋€(gè)端系統(tǒng),而物理層的作用是將幀中的一個(gè)個(gè)比特從一個(gè)節(jié)點(diǎn)運(yùn)輸?shù)搅硪粋€(gè)節(jié)點(diǎn),,物理層的協(xié)議仍然使用鏈路層協(xié)議,這些協(xié)議與實(shí)際的物理傳輸介質(zhì)有關(guān),例如,以太網(wǎng)有很多物理層協(xié)議:關(guān)于雙絞銅線、關(guān)于同軸電纜、關(guān)于光纖等等。

五層網(wǎng)絡(luò)協(xié)議的示意圖如下:

與HTTP相關(guān)協(xié)議

HTTP屬于應(yīng)用層的協(xié)議,需要其他層次協(xié)議的配合完成信息的交換,在完成一次HTTP請(qǐng)求和響應(yīng)的過(guò)程中,需要以下協(xié)議的配合:

TCP/IP

TCP/IP我們一般稱之為協(xié)議簇,什么意思呢?就是TCP/IP協(xié)議簇中不僅僅只有TCP協(xié)議和IP協(xié)議,它是一系列網(wǎng)絡(luò)通信協(xié)議的統(tǒng)稱。而其中最核心的兩個(gè)協(xié)議就是TCP/IP協(xié)議,其他的還有UDP、ICMP、ARP等等,共同構(gòu)成了一個(gè)復(fù)雜但有層次的協(xié)議棧。

TCP協(xié)議的全稱是Tran***issionControlProtocol的縮寫,意思是傳輸控制協(xié)議,HTTP使用TCP作為通信協(xié)議,這是因?yàn)門CP是一種可靠的協(xié)議,而可靠能保證數(shù)據(jù)不丟失。

IP協(xié)議的全稱是InternetProtocol的縮寫,它主要解決的是通信雙方尋址的問(wèn)題。IP協(xié)議使用IP地址來(lái)標(biāo)識(shí)互聯(lián)網(wǎng)上的每一臺(tái)計(jì)算機(jī)。

DNS

DNS的全稱是域名系統(tǒng)(DomainNameSystem,縮寫:DNS),它作為將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使人更方便地訪問(wèn)互聯(lián)網(wǎng)。比如:www.google.com->193.XXX.XXX.XXX

URI/URL

可以通過(guò)輸入www.google.com地址來(lái)訪問(wèn)谷歌的官網(wǎng),輸入的地址格式必須要滿足URI的規(guī)范。

URI的全稱是(UniformResourceIdentifier),中文名稱是統(tǒng)一資源標(biāo)識(shí)符,使用它就能夠唯一地標(biāo)記互聯(lián)網(wǎng)上資源。

URL的全稱是(UniformResourceLocator),中文名稱是統(tǒng)一資源定位符,也就是我們俗稱的網(wǎng)址,它實(shí)際上是URI的一個(gè)子集。

HTTP報(bào)文起始行(startline):描述請(qǐng)求或響應(yīng)的基本信息;頭部字段(header):使用key-value形式更詳細(xì)地說(shuō)明報(bào)文;消息正文(entity):實(shí)際傳輸?shù)臄?shù)據(jù),它不一定是純文本,可以是圖片、視頻等二進(jìn)制數(shù)據(jù)。

起始行和頭部字段并成為請(qǐng)求頭或者響應(yīng)頭,統(tǒng)稱為Header;消息正文也叫做實(shí)體,稱為body。HTTP協(xié)議規(guī)定每次發(fā)送的報(bào)文必須要有Header,但是可以沒(méi)有body,在header和body之間必須要有一個(gè)空行(CRLF)。

舉個(gè)例子:http://www.someSchool.edu/someDepartment/home.index請(qǐng)求的請(qǐng)求頭:

報(bào)文的起始行都是由三個(gè)字段組成:***、URL字段和HTTP版本字段。

HTTP請(qǐng)求***GET獲取資源,GET***用來(lái)請(qǐng)求訪問(wèn)已被URI識(shí)別的資源。指定的資源經(jīng)服務(wù)器端解析后返回響應(yīng)內(nèi)容。POST傳輸實(shí)體,使用POST傳輸實(shí)體信息,提交表格內(nèi)容。PUT傳輸文件,PUT***用來(lái)傳輸文件。就像FTP協(xié)議的文件上傳一樣,要求在請(qǐng)求報(bào)文的主體中包含文件內(nèi)容,然后保存到請(qǐng)求URI指定的位置。但是,鑒于HTTP的PUT***自身不帶驗(yàn)證機(jī)制,任何人都可以上傳文件,存在安全性問(wèn)題,因此一般的Web網(wǎng)站不使用該***。若配合Web應(yīng)用程序的驗(yàn)證機(jī)制,或架構(gòu)設(shè)計(jì)采用REST(REpresentationalStateTransfer,表征狀態(tài)轉(zhuǎn)移)標(biāo)準(zhǔn)的同類Web網(wǎng)站,就可能會(huì)***使用PUT***。HEAD獲得響應(yīng)首部,HEAD***和GET***一樣,只是不返回報(bào)文主體部分。用于確認(rèn)URI的有效性及資源更新的日期時(shí)間等。DELETE刪除文件,DELETE***用來(lái)刪除文件,是與PUT相反的***。DELETE***按請(qǐng)求URI刪除指定的資源。OPTIONS詢問(wèn)支持的***,OPTIONS***用來(lái)查詢針對(duì)請(qǐng)求URI指定的資源支持的***。TRACE追蹤路徑,TRACE***是讓W(xué)eb服務(wù)器端將之前的請(qǐng)求通信環(huán)回給客戶端的***。CONNECT要求用隧道協(xié)議連接代理,CONNECT***要求在與代理服務(wù)器通信時(shí)建立隧道,實(shí)現(xiàn)用隧道協(xié)議進(jìn)行TCP通信。主要使用SSL(SecureSocketsLayer,安全套接層)和TLS(TransportLayerSecurity,傳輸層安全)協(xié)議把通信內(nèi)容加密后經(jīng)網(wǎng)絡(luò)隧道傳輸。

一般最常用的***也就是GET***和POST***,其他***暫時(shí)了解即可。

HTTP請(qǐng)求URL

完整的域名解析一下URL:http://www.example.com:80/path/to/myfile.html?key1=value1&key2=value2#SomewhereInTheDocument

http://告訴瀏覽器使用何種協(xié)議。www.example.com是域名、主機(jī),指示了需要向網(wǎng)絡(luò)上的哪一臺(tái)主機(jī)發(fā)起請(qǐng)求。也可以直接向主機(jī)的ip發(fā)起請(qǐng)求。端口兩個(gè)主機(jī)之間要發(fā)起TCP連接需要兩個(gè)條件,主機(jī)+端口,表示用于訪問(wèn)Web服務(wù)器上資源的入口,如果訪問(wèn)的該Web服務(wù)器使用HTTP協(xié)議的標(biāo)準(zhǔn)端口(HTTP為80,HTTPS為443)授予對(duì)其資源的訪問(wèn)權(quán)限,則通常省略此部分。否則端口就是URI必須的部分。路徑/path/to/myfile.html是Web服務(wù)器上資源的路徑。以端口后面的第一個(gè)/開(kāi)始,到?號(hào)之前結(jié)束,中間的每一個(gè)/都代表了層級(jí)(上下級(jí))關(guān)系。查詢參數(shù)

?key1=value1&key2=value2是提供給Web服務(wù)器的額外參數(shù)。如果是GET請(qǐng)求,一般帶有請(qǐng)求URL參數(shù),如果是POST請(qǐng)求,則不會(huì)在路徑后面直接加參數(shù)。

錨點(diǎn)#SomewhereInTheDocument是資源本身的某一部分的一個(gè)錨點(diǎn)。錨點(diǎn)代表資源內(nèi)的一種“書簽”。請(qǐng)求頭部

比如http://www.someSchool.edu/someDepartment/home.index,來(lái)看一下它的請(qǐng)求頭部

Host:www.someschool.eduConnection:closeUser-agent:Mozilla/5.0Accept-language:fr復(fù)制代碼Host:表示的是對(duì)象所在的主機(jī)Connection:close表示的是瀏覽器需要告訴服務(wù)器使用的是非持久連接。它要求服務(wù)器在發(fā)送完響應(yīng)的對(duì)象后就關(guān)閉連接。User-agent:這是請(qǐng)求頭用來(lái)告訴Web服務(wù)器,瀏覽器使用的類型是Mozilla/5.0,即Firefox瀏覽器。Accept-language告訴Web服務(wù)器,瀏覽器想要得到對(duì)象的法語(yǔ)版本。

HTTP的請(qǐng)求標(biāo)頭分為四種:通用標(biāo)頭、請(qǐng)求標(biāo)頭、響應(yīng)標(biāo)頭和實(shí)體標(biāo)頭

通用標(biāo)頭

通用標(biāo)頭主要有三個(gè),分別是Date、Cache-Control和ConnectionDate

Date出現(xiàn)在請(qǐng)求標(biāo)頭和響應(yīng)標(biāo)頭中,它的基本表示如下

Date:Wed,21Oct201507:28:00GMT復(fù)制代碼

Cache-Control

Cache-Control可以出現(xiàn)在請(qǐng)求標(biāo)頭和響應(yīng)標(biāo)頭中,Cache-Control的種類比較多,雖然說(shuō)這是一個(gè)通用標(biāo)頭,但是又一些特性是請(qǐng)求標(biāo)頭具有的,有一些是響應(yīng)標(biāo)頭才有的。主要大類有可緩存性、閾值性、重新驗(yàn)證并重新加載和其他特性

Connection

Connection決定當(dāng)前事務(wù)(一次三次握手和四次揮手)完成后,是否會(huì)關(guān)閉網(wǎng)絡(luò)連接。Connection有兩種,一種是持久性連接,即一次事務(wù)完成后不關(guān)閉網(wǎng)絡(luò)連接

Connection:keep-alive復(fù)制代碼復(fù)制代碼

另一種是非持久性連接,即一次事務(wù)完成后關(guān)閉網(wǎng)絡(luò)連接

Connection:close復(fù)制代碼實(shí)體標(biāo)頭

實(shí)體標(biāo)頭是描述消息正文內(nèi)容的HTTP標(biāo)頭。實(shí)體標(biāo)頭用于HTTP請(qǐng)求和響應(yīng)中。頭部Content-Length、Content-Language、Content-Encoding是實(shí)體頭。

Content-Length實(shí)體報(bào)頭指示實(shí)體主體的大小,以字節(jié)為單位,發(fā)送到接收方。Content-Language實(shí)體報(bào)頭描述了客戶端或者服務(wù)端能夠接受的語(yǔ)言,例如Content-Language:de-DEContent-Language:en-USContent-Language:de-DE,en-CA復(fù)制代碼復(fù)制代碼Content-Encoding這又是一個(gè)比較麻煩的屬性,這個(gè)實(shí)體報(bào)頭用來(lái)壓縮媒體類型。Content-Encoding指示對(duì)實(shí)體應(yīng)用了何種編碼。常見(jiàn)的內(nèi)容編碼有這幾種:gzip、compress、deflate、identity,這個(gè)屬性可以應(yīng)用在請(qǐng)求報(bào)文和響應(yīng)報(bào)文中Accept-Encoding:gzip,deflate//請(qǐng)求頭Content-Encoding:gzip//響應(yīng)頭復(fù)制代碼請(qǐng)求標(biāo)頭GET/home.htmlHTTP/1.1Host:developer.mozilla.orgUser-Agent:Mozilla/5.0(Macintosh;IntelMacOSX10.9;rv:50.0)Gecko/20100101Firefox/50.0Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language:en-US,en;q=0.5Accept-Encoding:gzip,deflate,brReferer:https://developer.mozilla.org/testpage.htmlConnection:keep-aliveUpgrade-Insecure-Requests:1If-Modified-Since:Mon,18Jul201602:36:04GMTIf-None-Match:"c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"Cache-Control:max-age=0復(fù)制代碼

Host

Host請(qǐng)求頭指明了服務(wù)器的域名,以及(可選的)服務(wù)器監(jiān)聽(tīng)的TCP端口號(hào)

Referer

HTTPReferer屬性是請(qǐng)求標(biāo)頭的一部分,告訴服務(wù)器該網(wǎng)頁(yè)是從哪個(gè)頁(yè)面鏈接過(guò)來(lái)的

If-Modified-Since

HTTP的If-Modified-Since使其成為條件請(qǐng)求:

返回200,只有在給定日期的最后一次修改資源后,服務(wù)器才會(huì)以200狀態(tài)發(fā)送回請(qǐng)求的資源。如果請(qǐng)求從開(kāi)始以來(lái)沒(méi)有被修改過(guò),響應(yīng)會(huì)返回304并且沒(méi)有任何響應(yīng)體

If-Modified-Since通常會(huì)與If-None-Match搭配使用,If-Modified-Since用于確認(rèn)代理或客戶端擁有的本地資源的有效性。獲取資源的更新日期時(shí)間,可通過(guò)確認(rèn)首部字段Last-Modified來(lái)確定。

大白話說(shuō)就是如果在Last-Modified之后更新了服務(wù)器資源,那么服務(wù)器會(huì)響應(yīng)200,如果在Last-Modified之后沒(méi)有更新過(guò)資源,則返回304。

If-Modified-Since:Mon,18Jul201602:36:04GMT復(fù)制代碼復(fù)制代碼

If-None-Match

If-None-MatchHTTP請(qǐng)求標(biāo)頭使請(qǐng)求成為條件請(qǐng)求。對(duì)于GET和HEAD***,僅當(dāng)服務(wù)器沒(méi)有與給定資源匹配的ETag時(shí),服務(wù)器才會(huì)以200狀態(tài)發(fā)送回請(qǐng)求的資源。對(duì)于其他***,僅當(dāng)最終現(xiàn)有資源的ETag與列出的任何值都不匹配時(shí),才會(huì)處理請(qǐng)求。

If-None-Match:"c561c68d0ba92bbeb8b0fff2a9199f722e3a621a"復(fù)制代碼復(fù)制代碼內(nèi)容協(xié)商

內(nèi)容協(xié)商機(jī)制是指客戶端和服務(wù)器端就響應(yīng)的資源內(nèi)容進(jìn)行交涉,然后提供給客戶端最為適合的資源。內(nèi)容協(xié)商會(huì)以響應(yīng)資源的語(yǔ)言、字符集、編碼方式等作為判斷的標(biāo)準(zhǔn)。

內(nèi)容協(xié)商主要有以下3種類型:

服務(wù)器驅(qū)動(dòng)協(xié)商(Server-drivenNegotiation)

這種協(xié)商方式是由服務(wù)器端進(jìn)行內(nèi)容協(xié)商。服務(wù)器端會(huì)根據(jù)請(qǐng)求首部字段進(jìn)行自動(dòng)處理

客戶端驅(qū)動(dòng)協(xié)商(Agent-drivenNegotiation)

這種協(xié)商方式是由客戶端來(lái)進(jìn)行內(nèi)容協(xié)商。

透明協(xié)商(TransparentNegotiation)

是服務(wù)器驅(qū)動(dòng)和客戶端驅(qū)動(dòng)的結(jié)合體,是由服務(wù)器端和客戶端各自進(jìn)行內(nèi)容協(xié)商的一種***。

內(nèi)容協(xié)商的分類有很多種,主要的幾種類型是Accept、Accept-Charset、Accept-Encoding、Accept-Language、Content-Language。

Accept

接受請(qǐng)求HTTP標(biāo)頭會(huì)通告客戶端其能夠理解的MIME類型

MIME:MIME(MultipurposeInternetMailExtensions)是描述消息內(nèi)容類型的因特網(wǎng)標(biāo)準(zhǔn)。MIME消息能包含文本、圖像、音頻、視頻以及其他應(yīng)用程序?qū)S玫臄?shù)據(jù)。復(fù)制代碼

文本文件:text/html、text/plain、text/css、application/xhtml+xml、application/xml

圖片文件:image/jpeg、image/gif、image/png

視頻文件:video/mpeg、video/quicktime

應(yīng)用程序二進(jìn)制文件:application/octet-stream、application/zip

比如,如果瀏覽器不支持PNG圖片的顯示,那Accept就不指定image/png,而指定可處理的image/gif和image/jpeg等圖片類型。

一般MIME類型也會(huì)和q這個(gè)屬性一起使用,q是什么?q表示的是權(quán)重,來(lái)看一個(gè)例子

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8復(fù)制代碼

若想要給顯示的媒體類型增加優(yōu)先級(jí),則使用q=來(lái)額外表示權(quán)重值,沒(méi)有顯示權(quán)重的時(shí)候默認(rèn)值是1.0。

q

MIME

1.0

text/html

1.0

application/xhtml+xml

0.9

application/xml

0.8

*/*

Accept-Charset

accept-charset屬性規(guī)定服務(wù)器處理表單數(shù)據(jù)所接受的字符集。

accept-charset屬性允許您指定一系列字符集,服務(wù)器必須支持這些字符集,從而得以正確解釋表單中的數(shù)據(jù)。

Accept-Language

首部字段Accept-Language用來(lái)告知服務(wù)器用戶代理能夠處理的自然語(yǔ)言集(指中文或英文等),以及自然語(yǔ)言集的相對(duì)優(yōu)先級(jí)。

Accept-Language:en-US,en;q=0.5復(fù)制代碼響應(yīng)標(biāo)頭

響應(yīng)標(biāo)頭是可以在HTTP響應(yīng)中使用的HTTP標(biāo)頭。并不是所有出現(xiàn)在響應(yīng)中的標(biāo)頭都是響應(yīng)標(biāo)頭。還有一些特殊的我們上面說(shuō)過(guò),有通用標(biāo)頭和實(shí)體標(biāo)頭也會(huì)出現(xiàn)在響應(yīng)標(biāo)頭中,比如Content-Length就是一個(gè)實(shí)體標(biāo)頭,但是,在這種情況下,這些實(shí)體請(qǐng)求通常稱為響應(yīng)頭。下面以一個(gè)例子為例和你探討一下響應(yīng)頭

200OKAccess-Control-Allow-Origin:*Connection:Keep-AliveContent-Encoding:gzipContent-Type:text/html;charset=utf-8Date:Mon,18Jul201616:06:00GMTEtag:"c561c68d0ba92bbeb8b0f612a9199f722e3a621a"Keep-Alive:timeout=5,max=997Last-Modified:Mon,18Jul201602:36:04GMTServer:ApacheSet-Cookie:mykey=myvalue;expires=Mon,17-Jul-201716:06:00GMT;Max-Age=31449600;Path=/;secureTransfer-Encoding:chunkedVary:Cookie,Accept-Encodingx-frame-options:DENY復(fù)制代碼

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

以2xx為開(kāi)頭的都表示請(qǐng)求成功響應(yīng)。

狀態(tài)碼

含義

200

成功響應(yīng)

204

請(qǐng)求處理成功,但是沒(méi)有資源可以返回

206

對(duì)資源某一部分進(jìn)行響應(yīng),由Content-Range指定范圍的實(shí)體內(nèi)容。

以3xx為開(kāi)頭的都表示需要進(jìn)行附加操作以完成請(qǐng)求

狀態(tài)碼

含義

301

永久性重定向,該狀態(tài)碼表示請(qǐng)求的資源已經(jīng)重新分配URI,以后應(yīng)該使用資源現(xiàn)有的URI

302

臨時(shí)性重定向。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的URI,希望用戶(本次)能使用新的URI訪問(wèn)。

303

該狀態(tài)碼表示由于請(qǐng)求對(duì)應(yīng)的資源存在著另一個(gè)URI,應(yīng)使用GET***定向獲取請(qǐng)求的資源。

304

該狀態(tài)碼表示客戶端發(fā)送附帶條件的請(qǐng)求時(shí),服務(wù)器端允許請(qǐng)求訪問(wèn)資源,但未滿足條件的情況。

307

臨時(shí)重定向。該狀態(tài)碼與302Found有著相同的含義。

以4xx的響應(yīng)結(jié)果表明客戶端是發(fā)生錯(cuò)誤的原因所在。

狀態(tài)碼

含義

400

該狀態(tài)碼表示請(qǐng)求報(bào)文中存在語(yǔ)法錯(cuò)誤。當(dāng)錯(cuò)誤發(fā)生時(shí),需修改請(qǐng)求的內(nèi)容后再次發(fā)送請(qǐng)求。

401

該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò)HTTP認(rèn)證(BASIC認(rèn)證、DIGEST認(rèn)證)的認(rèn)證信息。

403

該狀態(tài)碼表明對(duì)請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕了。

404

該狀態(tài)碼表明服務(wù)器上無(wú)法找到請(qǐng)求的資源。

以5xx為開(kāi)頭的響應(yīng)標(biāo)頭都表示服務(wù)器本身發(fā)生錯(cuò)誤

狀態(tài)碼

含義

500

該狀態(tài)碼表明服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。

503

該狀態(tài)碼表明服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù),現(xiàn)在無(wú)法處理請(qǐng)求。

HTTP協(xié)議優(yōu)缺點(diǎn)HTTP的優(yōu)點(diǎn)簡(jiǎn)單靈活易擴(kuò)展

HTTP的協(xié)議比較簡(jiǎn)單,它的主要組成就是header+body,頭部信息也是簡(jiǎn)單的文本格式

HTTP協(xié)議又多了靈活和易擴(kuò)展的優(yōu)點(diǎn)。

HTTP協(xié)議里的請(qǐng)求***、URI、狀態(tài)碼、原因短語(yǔ)、頭字段等每一個(gè)核心組成要素都沒(méi)有被制定死,允許開(kāi)發(fā)者任意定制、擴(kuò)充或解釋,給予了瀏覽器和服務(wù)器最大程度的信任和自由。

應(yīng)用廣泛、環(huán)境成熟

天然具有跨語(yǔ)言、跨平臺(tái)的優(yōu)越性,而且,因?yàn)楸旧淼暮?jiǎn)單特性很容易實(shí)現(xiàn),所以幾乎所有的編程語(yǔ)言都有HTTP調(diào)用庫(kù)和外圍的開(kāi)發(fā)測(cè)試工具

無(wú)狀態(tài)

既是優(yōu)點(diǎn)又是缺點(diǎn)。因?yàn)榉?wù)器沒(méi)有記憶能力,所以就不需要額外的資源來(lái)記錄狀態(tài)信息,不僅實(shí)現(xiàn)上會(huì)簡(jiǎn)單一些,而且還能減輕服務(wù)器的負(fù)擔(dān),能夠把更多的CPU和內(nèi)存用來(lái)對(duì)外提供服務(wù)。

HTTP的缺點(diǎn)無(wú)狀態(tài)

服務(wù)器沒(méi)有記憶能力,它就無(wú)法支持需要連續(xù)多個(gè)步驟的事務(wù)操作。每次都得問(wèn)一遍身份信息,需要增加了不必要的數(shù)據(jù)傳輸量。由此出現(xiàn)了Cookie技術(shù)。

安全性

明文傳輸,協(xié)議里的報(bào)文(準(zhǔn)確地說(shuō)是header部分)不使用二進(jìn)制數(shù)據(jù),而是用簡(jiǎn)單可閱讀的文本形式。

對(duì)比TCP、UDP這樣的二進(jìn)制協(xié)議,它的優(yōu)點(diǎn)顯而易見(jiàn),不需要借助任何外部工具,用瀏覽器、Wireshark或者tcpdump抓包后,直接用肉眼就可以很容易地查看或者修改,為我們的開(kāi)發(fā)調(diào)試工作帶來(lái)極大的便利。

當(dāng)然缺點(diǎn)也是顯而易見(jiàn)的,就是不安全,可以被監(jiān)聽(tīng)和被窺探。因?yàn)闊o(wú)法判斷通信雙方的身份,不能判斷報(bào)文是否被更改過(guò)。

總結(jié)起來(lái)即:

明文,請(qǐng)求報(bào)文未加密;未hash,即使報(bào)文被修改過(guò)也不知道;未驗(yàn)證身份,容易導(dǎo)致中間人攻擊;

作者:captain_p鏈接:https://juejin.cn/post/7041744237905346568

如果本文對(duì)你有幫助,麻煩轉(zhuǎn)發(fā)關(guān)注支持一下

猜你喜歡

主站蜘蛛池模板: 在线男人天堂 | 亚洲第一区在线观看 | 五月天丁香久久 | 欧美精欧美乱码一二三四区 | 国内精品久久久久不卡 | 亚洲综合日韩 | 欧美人成在线观看网站高清 | 欧美日韩精品一区二区视频在线观看 | 国产中文字幕视频在线观看 | 在线观看你懂 | 久久综合五月天 | 国产精品视频网站 | 自拍视频精品 | 国产精品成人第一区 | www.婷婷.com | 羞羞视频免费 | 久久国产欧美另类久久久 | 国产成人视屏 | 免费视频久久 | 欧美蜜桃臀在线观看一区 | 亚洲国产精品成人久久 | 亚洲高清免费视频 | 亚洲自拍偷拍视频 | 酒色激情| 色爱区综合激情五月综合激情 | 性爽交免费视频 | 日本在线观看一区 | 国产免费色视频 | 色伊人国产高清在线 | 久久九九精品一区二区 | 综合网激情五月 | 亚洲国产欧美在线人成aaa | 亚洲福利视频一区二区三区 | 小草影视在线观看 | 午夜精品不卡电影在线观看 | 99久久国内精品成人免费 | 欧美日韩精品一区二区三区四区 | www.五月.com | 亚洲网站一区 | 亚洲国产成人在线观看 | 99国产精品热久久久久久 |