成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

搞定PHP面試 - HTTP協(xié)議知識(shí)點(diǎn)整理

xingpingz / 693人閱讀

摘要:重定向狀態(tài)碼,需要進(jìn)行附加操作以完成請(qǐng)求永久性重定向。該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò)認(rèn)證認(rèn)證認(rèn)證的認(rèn)證信息。該狀態(tài)碼表明服務(wù)器暫時(shí)處于超負(fù)載或正在進(jìn)行停機(jī)維護(hù),現(xiàn)在無(wú)法處理請(qǐng)求。

HTTP協(xié)議知識(shí)點(diǎn)整理 一、HTTP協(xié)議的工作特點(diǎn)和工作原理 工作特點(diǎn)

基于B/S模式

通信開銷小、簡(jiǎn)單快速、傳輸成本低

使用靈活、可試用超文本傳輸協(xié)議

節(jié)省傳輸時(shí)間

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

工作原理

客戶端發(fā)送請(qǐng)求給服務(wù)器,創(chuàng)建一個(gè)TCP鏈接,指定端口號(hào),默認(rèn)80,連接到服務(wù)器,服務(wù)器監(jiān)聽瀏覽器請(qǐng)求,一旦監(jiān)聽到客戶端請(qǐng)求,分析請(qǐng)求類型后,服務(wù)器會(huì)向客戶端放回狀態(tài)信息和數(shù)據(jù)內(nèi)容。

二、HTTP協(xié)議請(qǐng)求方法 1. GET:獲取資源

GET 方法用來(lái)請(qǐng)求訪問(wèn)已被 URI 識(shí)別的資源。指定的資源經(jīng)服務(wù)器端解析后返回響應(yīng)內(nèi)容。

2. POST:傳輸實(shí)體主體

POST 方法用來(lái)傳輸實(shí)體的主體。
雖然用 GET 方法也可以傳輸實(shí)體的主體,但一般不用 GET 方法進(jìn)行傳輸,而是用 POST 方法。雖說(shuō) POST 的功能與 GET 很相似,但POST 的主要目的并不是獲取響應(yīng)的主體內(nèi)容。

3. PUT:傳輸文件

PUT 方法用來(lái)傳輸文件。就像 FTP 協(xié)議的文件上傳一樣,要求在請(qǐng)求報(bào)文的主體中包含文件內(nèi)容,然后保存到請(qǐng)求 URI 指定的位置。
但是,鑒于 HTTP/1.1 的 PUT 方法自身不帶驗(yàn)證機(jī)制,任何人都可以上傳文件 , 存在安全性問(wèn)題,因此一般的 Web 網(wǎng)站不使用該方法。若配合 Web 應(yīng)用程序的驗(yàn)證機(jī)制,或架構(gòu)設(shè)計(jì)采用 REST(REpresentationalState Transfer,表征狀態(tài)轉(zhuǎn)移)標(biāo)準(zhǔn)的同類 Web 網(wǎng)站,就可能會(huì)開放使用 PUT 方法。

4. HEAD:獲得報(bào)文首部

HEAD 方法和 GET 方法一樣,只是不返回報(bào)文主體部分。用于確認(rèn)URI 的有效性及資源更新的日期時(shí)間等。

5. DELETE:刪除文件

DELETE 方法用來(lái)刪除文件,是與 PUT 相反的方法。DELETE 方法按請(qǐng)求 URI 刪除指定的資源。
但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一樣不帶驗(yàn)證機(jī)制,所以一般的 Web 網(wǎng)站也不使用 DELETE 方法。當(dāng)配合 Web 應(yīng)用程序的驗(yàn)證機(jī)制,或遵守 REST 標(biāo)準(zhǔn)時(shí)還是有可能會(huì)開放使用的。

6. OPTIONS:詢問(wèn)支持的方法

OPTIONS 方法用來(lái)查詢針對(duì)請(qǐng)求 URI 指定的資源支持的方法。

7. TRACE:追蹤路徑

TRACE 方法是讓 Web 服務(wù)器端將之前的請(qǐng)求通信環(huán)回給客戶端的方法。
發(fā)送請(qǐng)求時(shí),在 Max-Forwards 首部字段中填入數(shù)值,每經(jīng)過(guò)一個(gè)服務(wù)器端就將該數(shù)字減 1,當(dāng)數(shù)值剛好減到 0 時(shí),就停止繼續(xù)傳輸,最后接收到請(qǐng)求的服務(wù)器端則返回狀態(tài)碼 200 OK 的響應(yīng)。
客戶端通過(guò) TRACE 方法可以查詢發(fā)送出去的請(qǐng)求是怎樣被加工修改 / 篡改的。這是因?yàn)椋?qǐng)求想要連接到源目標(biāo)服務(wù)器可能會(huì)通過(guò)代理中轉(zhuǎn),TRACE 方法就是用來(lái)確認(rèn)連接過(guò)程中發(fā)生的一系列操作。
但是,TRACE 方法本來(lái)就不怎么常用,再加上它容易引發(fā) XST(Cross-Site Tracing,跨站追蹤)攻擊,通常就更不會(huì)用到了。

三、HTTP常用狀態(tài)碼

狀態(tài)碼的職責(zé)是當(dāng)客戶端向服務(wù)器端發(fā)送請(qǐng)求時(shí),描述返回的請(qǐng)求結(jié)果。
借助狀態(tài)碼,用戶可以知道服務(wù)器端是正常處理了請(qǐng)求,還是出現(xiàn)了錯(cuò)誤。

1. 1XX Informational(信息性狀態(tài)碼, 接收的請(qǐng)求正在處理) 2. 2XX Success(成功狀態(tài)碼,表示請(qǐng)求正常處理完畢) 200 OK

表示從客戶端發(fā)來(lái)的請(qǐng)求在服務(wù)器端被正常處理了。

204 No Content

該狀態(tài)碼代表服務(wù)器接收的請(qǐng)求已成功處理,但在返回的響應(yīng)報(bào)文中不含實(shí)體的主體部分。另外,也不允許返回任何實(shí)體的主體。比如,當(dāng)從瀏覽器發(fā)出請(qǐng)求處理后,返回 204 響應(yīng),那么瀏覽器顯示的頁(yè)面不發(fā)生更新。
一般在只需要從客戶端往服務(wù)器發(fā)送信息,而對(duì)客戶端不需要發(fā)送新信息內(nèi)容的情況下使用。

206 Partial Content

該狀態(tài)碼表示客戶端進(jìn)行了范圍請(qǐng)求,而服務(wù)器成功執(zhí)行了這部分的 GET 請(qǐng)求。響應(yīng)報(bào)文中包含由 Content-Range 指定范圍的實(shí)體內(nèi)容。

3. 3XX Redirection(重定向狀態(tài)碼,需要進(jìn)行附加操作以完成請(qǐng)求) 301 Moved Permanently

永久性重定向。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的 URI,以后應(yīng)使用資源現(xiàn)在所指的 URI。也就是說(shuō),如果已經(jīng)把資源對(duì)應(yīng)的 URI保存為書簽了,這時(shí)應(yīng)該按 Location 首部字段提示的 URI 重新保存。

302 Move temporarily

臨時(shí)性重定向。該狀態(tài)碼表示請(qǐng)求的資源已被分配了新的 URI,希望用戶(本次)能使用新的 URI 訪問(wèn)。
和 301 Moved Permanently 狀態(tài)碼相似,但 302 狀態(tài)碼代表的資源不是被永久移動(dòng),只是臨時(shí)性質(zhì)的。換句話說(shuō),已移動(dòng)的資源對(duì)應(yīng)的URI 將來(lái)還有可能發(fā)生改變。比如,用戶把 URI 保存成書簽,但不會(huì)像301 狀態(tài)碼出現(xiàn)時(shí)那樣去更新書簽,而是仍舊保留返回 302 狀態(tài)碼的頁(yè)面對(duì)應(yīng)的 URI。

304 Not Modified

該狀態(tài)碼表示客戶端發(fā)送附帶條件的請(qǐng)求時(shí),服務(wù)器端允許請(qǐng)求訪問(wèn)資源,而文檔的內(nèi)容(自上次訪問(wèn)以來(lái)或者根據(jù)請(qǐng)求的條件)并沒有改變。

4. 4XX Client Error(客戶端錯(cuò)誤狀態(tài)碼,服務(wù)器無(wú)法處理請(qǐng)求) 400 Bad Request

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

401 Unauthorized

該狀態(tài)碼表示發(fā)送的請(qǐng)求需要有通過(guò) HTTP 認(rèn)證(BASIC 認(rèn)證、DIGEST 認(rèn)證)的認(rèn)證信息。另外若之前已進(jìn)行過(guò) 1 次請(qǐng)求,則表示用戶認(rèn)證失敗。
返回含有 401 的響應(yīng)必須包含一個(gè)適用于被請(qǐng)求資源的 WWW-Authenticate 首部用以質(zhì)詢(challenge)用戶信息。當(dāng)瀏覽器初次接收到 401 響應(yīng),會(huì)彈出認(rèn)證用的對(duì)話窗口。

403 Forbidden

該狀態(tài)碼表明對(duì)請(qǐng)求資源的訪問(wèn)被服務(wù)器拒絕了。
未獲得文件系統(tǒng)的訪問(wèn)授權(quán),訪問(wèn)權(quán)限出現(xiàn)某些問(wèn)題(從未授權(quán)的發(fā)送源 IP 地址試圖訪問(wèn))等情況都可能是發(fā)生 403 的原因。

404 Not Found

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

405 Method Not Allowed

表明當(dāng)前請(qǐng)求使用的 HTTP 方法不被服務(wù)器允許。
例如使用GET方法請(qǐng)求需要POST方法的數(shù)據(jù)。

5. 5XX Server Error(服務(wù)器錯(cuò)誤狀態(tài)碼,服務(wù)器處理請(qǐng)求出錯(cuò)) 500 Internal Server Error

該狀態(tài)碼表明服務(wù)器端在執(zhí)行請(qǐng)求時(shí)發(fā)生了錯(cuò)誤。有可能是 Web 應(yīng)用存在的 bug 或某些臨時(shí)的故障。

502 Bad Gateway

該狀態(tài)碼表明服務(wù)器和網(wǎng)關(guān)/代理通信出錯(cuò)。

503 Service Unavailable

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

504 Gateway Timeout 網(wǎng)關(guān)超時(shí)

該狀態(tài)碼表明服務(wù)器作為網(wǎng)關(guān)或代理,但是沒有及時(shí)從上游服務(wù)器收到請(qǐng)求。

四、HTTP協(xié)議常見請(qǐng)求、響應(yīng)頭 1. HTTP/1.1 通用首部字段

通用首部字段是指,請(qǐng)求報(bào)文和響應(yīng)報(bào)文雙方都會(huì)使用的首部。

Cache-Control 設(shè)置緩存的工作機(jī)制

指令的參數(shù)是可選的,多個(gè)指令之間通過(guò) , 分隔。

Cache-Control: private, max-age=0, no-cache

緩存請(qǐng)求指令

指令 參數(shù) 說(shuō)明
no-cache 無(wú) 強(qiáng)制向源服務(wù)器再次驗(yàn)證
no-store 無(wú) 不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
max-age = [ 秒] 必需 響應(yīng)的最大Age值
max-stale( = [ 秒]) 可省略 接收已過(guò)期的響應(yīng)
min-fresh = [ 秒] 必需 期望在指定時(shí)間內(nèi)的響應(yīng)仍有效
no-transform 無(wú) 代理不可更改媒體類型
only-if-cached 無(wú) 從緩存獲取資源
cache-extension - 新指令標(biāo)記(token)

緩存響應(yīng)指令

指令 參數(shù) 說(shuō)明
public 無(wú) 可向任意方提供響應(yīng)的緩存
private 可省略 僅向特定用戶返回響應(yīng)
no-cache 可省略 緩存前必須先確認(rèn)其有效性
no-store 無(wú) 不緩存請(qǐng)求或響應(yīng)的任何內(nèi)容
no-transform 無(wú) 代理不可更改媒體類型
must-revalidate 無(wú) 可緩存但必須再向源服務(wù)器進(jìn)行確認(rèn)
proxy-revalidate 無(wú) 要求中間緩存服務(wù)器對(duì)緩存的響應(yīng)有效性再進(jìn)行確認(rèn)
max-age = [ 秒] 必需 響應(yīng)的最大Age值
s-maxage = [ 秒] 必需 公共緩存服務(wù)器響應(yīng)的最大Age值
cache-extension - 新指令標(biāo)記(token)
Connection

Connection 首部字段具備如下兩個(gè)作用。

控制不再轉(zhuǎn)發(fā)給代理的首部字段

管理持久連接

Connection: keep-alive
Connection: Upgrade

Date 創(chuàng)建 HTTP 報(bào)文的日期和時(shí)間。
Date: Tue, 03 Jul 2012 04:40:59 GMT
Date: Tue, 03-Jul-12 04:40:59 GMT
Date: Tue Jul 03 04:40:59 2012
Content-Type 設(shè)置請(qǐng)求體或相應(yīng)體的MIME類型
Content-Type: application/x-www-form-urlencoded
Content-Type: text/html; charset=utf-8

Content-Encoding 設(shè)置數(shù)據(jù)使用的編碼類型
Content-Encoding: gzip
Content-Length 請(qǐng)求體或響應(yīng)體的字節(jié)長(zhǎng)度
Content-Length: 348
2. 常見請(qǐng)求頭字段 Host 設(shè)置服務(wù)器域名和TCP端口號(hào),如果使用的是服務(wù)請(qǐng)求標(biāo)準(zhǔn)端口號(hào),端口號(hào)可以省略
Host: en.wikipedia.org:8080
Host: en.wikipedia.org
Accept 設(shè)置接受的內(nèi)容類型
Accept: text/plain
Accept-Charset 設(shè)置接受的字符編碼
Accept-Charset: utf-8

Accept-Encoding 設(shè)置接受的編碼格式
Accept-Encoding: gzip, deflate

Origin 標(biāo)識(shí)跨域資源請(qǐng)求(請(qǐng)求服務(wù)端設(shè)置Access-Control-Allow-Origin響應(yīng)字段)
Origin: http://www.example-social-network.com
User-Agent 用戶代理的字符串值
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/21.0
Cookie 設(shè)置服務(wù)器使用Set-Cookie發(fā)送的http cookie
Cookie: $Version=1; Skin=new;
Authorization 設(shè)置HTTP身份驗(yàn)證的憑證
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Referer 告知服務(wù)器請(qǐng)求的原始資源的 URI
Referer: http://en.wikipedia.org/wiki/Main_Page
X-Forwarded-For 客戶端通過(guò)HTTP代理或者負(fù)載均衡器連接的web服務(wù)器的原始IP地址
X-Forwarded-For: client1, proxy1, proxy2
X-Forwarded-For: 129.78.138.66, 129.78.64.103
Forwarded 客戶端通過(guò)http代理連接web服務(wù)的源信息
Forwarded: for=192.0.2.60;proto=http;by=203.0.113.43
Forwarded: for=192.0.2.43, for=198.51.100.17
3. 常見響應(yīng)頭字段 Allow 通知客戶端請(qǐng)求所支持的 HTTP 方法
Allow: GET, HEAD
Access-Control-Allow-Origin 指定哪些站點(diǎn)可以參與跨站資源共享
Access-Control-Allow-Origin: *
Expires 設(shè)置響應(yīng)體的過(guò)期時(shí)間
Expires: Thu, 01 Dec 1994 16:00:00 GMT
Last-Modified 設(shè)置請(qǐng)求對(duì)象最后一次的修改日期
Last-Modified: Tue, 15 Nov 1994 12:45:26 GMT
Age 對(duì)象在代理緩存中暫存的秒數(shù)
Age: 3600
ETag 特定版本資源的標(biāo)識(shí)符,通常是消息摘要
ETag: "737060cd8c284d8af7ad3082f209582d"
Refresh 重定向
Refresh: 5; url=http://www.w3.org/pub/WWW/People.html
Set-Cookie 設(shè)置HTTP Cookie
Set-Cookie: UserID=JohnDoe; Max-Age=3600; Version=1

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31384.html

相關(guān)文章

  • 搞定PHP面試 - 函數(shù)識(shí)點(diǎn)整理

    摘要:使用中文函數(shù)名和變量名面積長(zhǎng)寬長(zhǎng)寬面積合法,輸出中文符號(hào)函數(shù)名。類型聲明類型聲明允許函數(shù)在調(diào)用時(shí)要求參數(shù)為特定類型。需要使用自己的包裝函數(shù)來(lái)將這些結(jié)構(gòu)用作可變函數(shù)。匿名函數(shù)目前是通過(guò)類來(lái)實(shí)現(xiàn)的。 一、函數(shù)的定義 1. 函數(shù)的命名規(guī)則 函數(shù)名可以包含字母、數(shù)字、下劃線,不能以數(shù)字開頭。 function Func_1(){ } //合法 function func1(){ } //合法 ...

    SimpleTriangle 評(píng)論0 收藏0
  • 搞定PHP面試 - 變量識(shí)點(diǎn)整理

    摘要:聲明靜態(tài)變量時(shí)不能用表達(dá)式的結(jié)果對(duì)其賦值正確錯(cuò)誤使用表達(dá)式的結(jié)果賦值錯(cuò)誤使用表達(dá)式的結(jié)果賦值靜態(tài)變量與遞歸函數(shù)靜態(tài)變量提供了一種處理遞歸函數(shù)的方法。 一、變量的定義 1. 變量的命名規(guī)則 變量名可以包含字母、數(shù)字、下劃線,不能以數(shù)字開頭。 $Var_1 = foo; // 合法 $var1 = foo; // 合法 $_var1 = foo; // 合法 $Var-1 = foo; /...

    Mertens 評(píng)論0 收藏0
  • 搞定PHP面試 - 正則表達(dá)式識(shí)點(diǎn)整理

    摘要:是決定正則表達(dá)式匹配規(guī)則的主要部分。二分隔符分隔符的選擇當(dāng)使用函數(shù)的時(shí)候,正則表達(dá)式必須由分隔符閉合包裹。果分隔符經(jīng)常在正則表達(dá)式內(nèi)出現(xiàn),最好使用其他分隔符來(lái)提高可讀性。需要將一個(gè)字符串放入正則表達(dá)式中使用時(shí),可以用函數(shù)對(duì)其進(jìn)行轉(zhuǎn)義。 一、簡(jiǎn)介 1. 什么是正則表達(dá)式 正則表達(dá)式(Regular Expression)就是用某種模式去匹配一類字符串的一種公式。正則表達(dá)式使用單個(gè)字符串來(lái)...

    AaronYuan 評(píng)論0 收藏0
  • 搞定PHP面試 - 運(yùn)算符識(shí)點(diǎn)整理

    摘要:除法運(yùn)算符總是返回浮點(diǎn)數(shù)。取模運(yùn)算符的結(jié)果和被除數(shù)的符號(hào)正負(fù)號(hào)相同。使用位運(yùn)算符時(shí)要特別注意優(yōu)先級(jí)。太空船運(yùn)算符組合比較符當(dāng)小于等于大于時(shí)分別返回一個(gè)小于等于大于的值。遞增遞減運(yùn)算符不影響布爾值。 一、算術(shù)運(yùn)算符 1. 概覽 例子 名稱 結(jié)果 $a + $b 加法 $a 和 $b 的和。 $a - $b 減法 $a 和 $b 的差。 $a * $b 乘法 $a 和 ...

    HelKyle 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<