四腳貓網(wǎng)上代碼http協(xié)議_第1頁
四腳貓網(wǎng)上代碼http協(xié)議_第2頁
四腳貓網(wǎng)上代碼http協(xié)議_第3頁
四腳貓網(wǎng)上代碼http協(xié)議_第4頁
四腳貓網(wǎng)上代碼http協(xié)議_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

HyperTextTransferProtocolHyperTextTransferProtocol什么是協(xié)議?HTTP通信交互流程常見的HTTP頭(header)的含義及作用常見HTTP響應(yīng)狀態(tài)碼的含義Cookie、Session的原理HTTP緩存策略HTTP安全、常見攻擊方式及防范策略PHP中HTTP相關(guān)應(yīng)用實(shí)戰(zhàn)Protocol、Protocol、Protocol什么是協(xié)議?協(xié)議這個(gè)詞主要應(yīng)用在計(jì)算機(jī)領(lǐng)域,就是連入網(wǎng)絡(luò)的計(jì)算機(jī)都要遵循的一定的技術(shù)規(guī)范,關(guān)于硬件、軟件和端口等的技術(shù)規(guī)范。計(jì)算機(jī)通信網(wǎng)是由許多具有信息交換和處理能力的節(jié)點(diǎn)互連而成的。要使整個(gè)網(wǎng)絡(luò)有條不紊地工作,就要求每個(gè)節(jié)點(diǎn)必須遵守一些事先約定好的有關(guān)數(shù)據(jù)格式及時(shí)序等的規(guī)則。這些為實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)交換而建立的規(guī)則、約定或標(biāo)準(zhǔn)就稱為網(wǎng)絡(luò)協(xié)議。Protocol、Protocol、Protocol紅外遙控協(xié)議:32768Hz閃16次,停止7.33ms,再閃16次——立即拍照32768Hz閃16次,停止5.36ms,再閃16次——延時(shí)5秒拍照Protocol、Protocol、Protocol飛鴿傳書協(xié)議:1:23149:riverlet::\x20:balabalabalabala版本號:包編號:發(fā)送者姓名:發(fā)送者主機(jī)名:命令字:附加信息(消息內(nèi)容)HTTP/0.9超文本傳輸協(xié)議:GET/index.html——HTTP0.9HTTP/1.0超文本傳輸協(xié)議:POST/index.htmlHTTP/1.0If-Modified-Since:Tue,13May201414:32:22GMTAuthorization:BasicQWxhZGRpbjpvcGVuIHNlc2FtZQ==Connection:keep-alive——HTTP1.0HTTP/1.1超文本傳輸協(xié)議:GET/index.htmlHTTP/1.1Host:Range:bytes=500-999Connection:closeTransfer-Encoding:chunked——HTTP1.1UniformResourceIdentifierhttp://username:passwd

/subdir/file.html?var=value&var2=value2#hashhttp://username:passwd/subdir/file.html?var=value&var2=value2#hashHTTP工作流程訪問一個(gè)網(wǎng)址時(shí),發(fā)生了些什么?

解析域名,獲取IP,通過DNS建立TCP連接向服務(wù)器發(fā)送GET請求返回內(nèi)容斷開連接嗎?HyperTextTransferProtocol客戶端代理服務(wù)器應(yīng)用服務(wù)器HTTP請求

HTTPRequestRequestline

GET/dir/1.htmlHTTP/1.1

請求方法資源位置協(xié)議版本

HTTPheaders

通用header、請求header、實(shí)體headerContent

請求方法

RequestMethodHTTP/1.1規(guī)范中的8個(gè)請求方法:

GET

POST

HEADPUTDELETE

TRACEOPTIONSCONNECTTRACEBACKRequestHeadersAccept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8參數(shù)為ContentTypeq指定優(yōu)先級[0-1],0為不接受,默認(rèn)為1如果不指定*/*,則其他類型優(yōu)先級為0RequestHeadersAccept-Charset:

utf-8;q=0.66,*;q=0.6Accept-Encoding:gzip,deflate,sdchAccept-Language:zh-CN,zh;q=0.8,en;q=0.6RequestHeadersAuthorization:

BasicQWxhZGRpbjpvcGVuIHNlc2FtZQ==401UnauthorizedCookie:

version=1;skin=new;RequestHeadersCache-Control:

public,max-age=864000Expect:

100-continueFrom:

RequestHeadersHost:

If-Match:

"aetaghash"If-Modified-Since:

Sun,11May201405:39:55GMTRequestHeadersIf-None-Match:

"aetaghash"If-Range:

"aetaghash"

Sun,11May201405:39:55GMTIf-Unmodified-Since:

Sun,11May201405:39:55GMTRequestHeadersMax-Forwards:

2Proxy-Authorization:

BasicQWxhZGRpbjpvcGVuIHNlc2FtZQ==Range:

bytes=0-499,1000-1499,3000-RequestHeadersReferer:

TE:

trailers,deflateRange:

bytes=0-499,1000-1499,3000-RequestHeadersUpgrade:

HTTP/2.0Via:

2,Warning:

199MiscellaneouswarningRequestHeadersX-Requested-With:

XMLHttpRequestX-Forwarded-For:

client1,proxy1,25HTTPResponseStatusline

HTTP/1.1200OK

HTTPheaders

通用header、響應(yīng)header、實(shí)體header

Content

<html>...</html>

ResponseStatus100-199:參考信息200-299:成功300-399:重定向400-499:客戶端錯(cuò)誤500-599:服務(wù)器錯(cuò)誤ResponseStatus100Continue繼續(xù)相關(guān)請求header:Expect:100-continueResponseStatus101SwitchingProtocols切換協(xié)議Upgrade:HTTP/2.0ResponseStatus200OK一切OKGET/index.htmlHTTP/1.1ResponseStatus201Created已創(chuàng)建通常伴隨Locationheader返回PUT/a-new-doc.htmlHTTP/1.1ResponseStatus202Accepted已接受通常表示PUT創(chuàng)建資源的請求已接受,但并不一定已創(chuàng)建完畢。PUT/a-new-doc.htmlHTTP/1.1ResponseStatus203Non-AuthoritativeInformation成功處理請求,但需要以另一個(gè)資源返回結(jié)果。GET/list.htmlHTTP/1.1ResponseStatus204NoContent已成功處理請求,但沒有響應(yīng)內(nèi)容。按HTTP規(guī)范,瀏覽器收到此響應(yīng)時(shí)不應(yīng)更新當(dāng)前頁面顯示內(nèi)容DELETE/old-content.htmlHTTP/1.1ResponseStatus205ResetContent已成功處理請求,但沒有響應(yīng)內(nèi)容。瀏覽器收到此響應(yīng)時(shí)應(yīng)更新當(dāng)前頁面顯示內(nèi)容,即刷新DELETE/old-content.htmlHTTP/1.1ResponseStatus206PartialContent片段內(nèi)容GET/large.zipHTTP/1.1Range:bytes=0-500ResponseStatus300MultipleChoices多個(gè)選擇如返回不同格式的視頻,選擇項(xiàng)可在響應(yīng)內(nèi)容中列出GET/beauty.aviHTTP/1.1ResponseStatus301MovedPermanently已永久移動(dòng)到其他位置配合Location使用。SEO適用,無結(jié)尾/請求目錄時(shí)也會(huì)自動(dòng)產(chǎn)生此響應(yīng)GET/beautyHTTP/1.1ResponseStatus302Found找到了按HTTP規(guī)范,客戶端此時(shí)應(yīng)使用和導(dǎo)致產(chǎn)生此響應(yīng)的請求方法同樣的方法再次請求Location指定位置的資源但實(shí)踐中,絕大多數(shù)瀏覽器都一律使用GET請求Location中指定的資源。而這一行為卻是HTTP規(guī)范中303SeeOther要求的處理方式。ResponseStatus303SeeOther去看另一個(gè)無論導(dǎo)致產(chǎn)生此響應(yīng)的請求方法是什么,都用GET重新請求Location指定位置的資源GET/beautyHTTP/1.1ResponseStatus304NotModified未修改,無變動(dòng)(用緩存中的吧)Date:Thu,15May201413:45:29GMTETag:"6uIYQYPV5RR"GET/beautyHTTP/1.1If-None-Match:"6uIYQYPV5RR"If-Modified-Since:Tue,13May201418:10:07GMTResponseStatus305UseProxy需要用代理服務(wù)器告知瀏覽器要用Location中指定的代理服務(wù)器訪問。大部分瀏覽器不支持。GET/beautyHTTP/1.1ResponseStatus306SwitchProxy已廢棄。ResponseStatus307TemporaryRedirect臨時(shí)重定向用同樣的請求方法(GET/POST/HEAD...)重新請求Location指定的內(nèi)容,而不是只用GET。用于彌補(bǔ)302在使用實(shí)踐中的錯(cuò)誤。ResponseStatus400BadRequest請求錯(cuò)誤。打開的方式不對。。ResponseStatus401Unauthorized未被授權(quán)WWW-Authenticate:Basic瀏覽器收到此響應(yīng)會(huì)彈出一個(gè)輸入用戶名、密碼的對話框ResponseStatus402PaymentRequired需要付款實(shí)踐中很少使用ResponseStatus403Forbidden禁止訪問驗(yàn)證失敗或充實(shí)次數(shù)過多也會(huì)導(dǎo)致出現(xiàn)此響應(yīng)。404NotFoundResponseStatus405MethodNotAllowed訪問方法不對服務(wù)器禁止以所請求的方法訪問,同時(shí)一般會(huì)通過Allow告知允許的方法:Allow:GET,POST,HEADResponseStatus406NotAcceptable無法接受當(dāng)請求中的Accept系列header中列出的條件無法滿足時(shí),會(huì)產(chǎn)生此響應(yīng)。GET/HTTP/1.1Accept:application/jsonResponseStatus407ProxyAuthenticationRequired代理服務(wù)器需身份驗(yàn)證ResponseStatus408Requesttimeout請求超時(shí)服務(wù)器一直沒遇到Connection:close,會(huì)產(chǎn)生此響應(yīng)并關(guān)閉連接ResponseStatus409Conflict沖突例如兩個(gè)用戶同時(shí)提交PUT請求時(shí)ResponseStatus410Gone沒了資源曾經(jīng)存在,但現(xiàn)在已不復(fù)存在ResponseStatus411LengthRequired需要提供內(nèi)容長度Content-LengthResponseStatus412PreconditionFailed前置條件不足常用于響應(yīng)PUT請求,避免出現(xiàn)修改時(shí)內(nèi)容已發(fā)生變動(dòng)而被覆蓋的情況。PUT/new-article-1211.htmlHTTP/1.1IF-Match:"an-old-etag"ResponseStatus413RequestEntityTooLarge

請求實(shí)體太大414Request-URITooLong

請求URL太長415UnsupportedMediaType

不支持的媒體類型,如上傳了一個(gè)不支持的文件類型ResponseStatus416RequestRangeNotSatisfiable

Range請求片段無法滿足417ExpectationFailed

Expect請求無法滿足418

I'maTeapot

。。。。用茶壺煮咖啡的時(shí)候ResponseStatus500InternalServerError

服務(wù)器錯(cuò)誤501NotImplemented

請求的方法或功能未實(shí)現(xiàn)ResponseStatus502BadGateway

網(wǎng)關(guān)錯(cuò)誤。代理服務(wù)器從上游服務(wù)器收到一個(gè)無效響應(yīng)時(shí),會(huì)給客戶端返回此響應(yīng)503ServiceUnavailable

服務(wù)暫不可用。如上游服務(wù)器超載或暫時(shí)停機(jī)維護(hù)等,代理服務(wù)器則返回此響應(yīng)??筛綆etry-After頭。ResponseStatus504GatewayTimeout

網(wǎng)關(guān)超時(shí)。代理服務(wù)器無法在限定時(shí)間內(nèi)從上游服務(wù)器收到一個(gè)有效響應(yīng)505HTTPVersionNotSupported

HTTP版本不支持

ResponseHeadersAccept-Ranges:

bytesAge:

231Content-Disposition:

attachment;filename="example.zip"12:34:56proxyb緩存了一份webserver說max-age=900的網(wǎng)頁12:44:26瀏覽器發(fā)起了一個(gè)請求12:44:41請求被proxya轉(zhuǎn)發(fā)給proxyb12:44:56proxyb算age=600,發(fā)給proxya(12:44:56-12:34:56)12:45:11proxya計(jì)算其當(dāng)前age為615(12:45:11-12:34:56)12:45:12proxya再添加-轉(zhuǎn)發(fā)處理過程所用的15秒=63012:45:13proxya有加了它自己計(jì)算所用的2秒=63212:45:13由于632<900(max-age),所以proxya最終將內(nèi)容發(fā)

給瀏覽器backResponseHeadersETag:

"abcdthisisatag"Location:

Refresh:

3;/ResponseHeadersRetry-After:

Tue,15Nov201408:12:31GMT

200Server:

"Apache/2.4.2(Unix)"ResponseHeadersSet-Cookie:

name=cat;;path=/;expires=Tue,21May201412:34:56GMT;secureVary:

Accept-Language,User-AgentGeneralHeadersCache-Control:

max-age=600,no-cache="Set-Cookie"Connection:

Keep-Alive

CloseGeneralHeadersDate:

Tue,21May200212:34:56GMTPragma:

no-cacheKeep-Alive:

300GeneralHeadersTrailer:

DateHTTP/1.1200OKContent-Type:text/htmlTransfer-Encoding:chunkedTrailer:Date05line105line20Date:Tue,21May201212:34:56GMTGeneralHeadersTransfer-Encoding:

chunked..HTTP/1.1200OKDate:Tue,21May200212:34:56GMTContent-Type:text/htmlTransfer-Encoding:chunked7f<html><head><title>Transfer-EncodingExample</title></head><body><p>Pleasewaitwhilewecompleteyourtransaction...</p>2c<p>Transactioncomplete!</p></body></html>0GeneralHeadersUpgrade:

TLS/1.0GET/HTTP/1.1Host:Upgrade:TLS/1.0Connection:UpgradeHTTP/1.1101SwitchingProtocolsUpgrade:TLS/1.0,HTTP/1.1Connection:UpgradeGeneralHeadersVia:

proxy1,proxy2Warning:

110Responseisstale

112Disconnectedoperation

...EntityHeadersAllow:

GET,HEAD,POSTContent-MD5:

ZTFmZDA5MDYyYTMzZGQzMDMxMmIxMjc4YThhNTMyM2I=Content-Range:

600-900/1234EntityHeadersContent-Encoding:

gzipContent-Language:

zh_CNContent-Length:

8848EntityHeadersExpires:

Tue,21May201612:34:56GMTLast-Modified:

Tue,21May201312:34:56GMTContent-Length:

8848格式規(guī)范每行,以\r\n結(jié)束,header、content中間要有一空行

Header-Name:value

Tue,21May200212:34:56GMT

周,兩位日期三位月四位年時(shí)間GMT

gmdate("D,dMYH:i:sT",time());urlencode()&rawurlencode()媒體類型*/*type/*type/subtypeIANA預(yù)定義的8個(gè)主類:application\audio\image\message\model\multipart\text\videoContent-Disposition:attachment;filename="example.pdf"Content-Disposition:inline;filename="playlist.m3u"HTTP性能優(yōu)化

performance緩存Cache-control、If-Modified-Since、ETag連接Connection:keep-aliveKeep-Alive:10壓縮Accept-Encoding、Content-Encodingob_start("ob_gzhandler")

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論