HTTP协议中常见请求方法以及一些常见错误代码
GET:?請(qǐng)求指定的頁面信息,并返回實(shí)體主體。
HEAD:?只請(qǐng)求頁面的首部。
POST:?請(qǐng)求服務(wù)器接受所指定的文檔作為對(duì)所標(biāo)識(shí)的URI的新的從屬實(shí)體。
PUT:?從客戶端向服務(wù)器傳送的數(shù)據(jù)取代指定的文檔的內(nèi)容。
DELETE:?請(qǐng)求服務(wù)器刪除指定的頁面。
OPTIONS:?允許客戶端查看服務(wù)器的性能。
TRACE:?請(qǐng)求服務(wù)器在響應(yīng)中的實(shí)體主體部分返回所得到的內(nèi)容。
PATCH:?實(shí)體中包含一個(gè)表,表中說明與該URI所表示的原內(nèi)容的區(qū)別。
MOVE:?請(qǐng)求服務(wù)器將指定的頁面移至另一個(gè)網(wǎng)絡(luò)地址。
COPY:?請(qǐng)求服務(wù)器將指定的頁面拷貝至另一個(gè)網(wǎng)絡(luò)地址。
LINK:?請(qǐng)求服務(wù)器建立鏈接關(guān)系。
UNLINK:?斷開鏈接關(guān)系。
WRAPPED:?允許客戶端發(fā)送經(jīng)過封裝的請(qǐng)求。
Extension-mothed:在不改動(dòng)協(xié)議的前提下,可增加另外的方法。
當(dāng)服務(wù)器響應(yīng)時(shí),其狀態(tài)行的信息為HTTP的版本號(hào),狀態(tài)碼,及解釋狀態(tài)碼的簡(jiǎn)單說明。現(xiàn)將5類狀態(tài)碼詳細(xì)列出:
①?客戶方錯(cuò)誤
100 ?繼續(xù)
101 ?交換協(xié)議
②?成功
200? OK
201? 已創(chuàng)建
202 ?接收
203 ?非認(rèn)證信息
204 ?無內(nèi)容
205? 重置內(nèi)容
206 ?部分內(nèi)容
③?重定向
300? 多路選擇
301 ?永久轉(zhuǎn)移
302 ?暫時(shí)轉(zhuǎn)移
303 ?參見其它
304? 未修改(Not?Modified)
305 ?使用代理
④?客戶方錯(cuò)誤
400 ?錯(cuò)誤請(qǐng)求(Bad?Request)
401? 未認(rèn)證
402? 需要付費(fèi)
403 ?禁止(Forbidden)
404 ?未找到(Not?Found)
405 ?方法不允許
406 ?不接受
407 ?需要代理認(rèn)證
408 ?請(qǐng)求超時(shí)
409 ?沖突
410? 失敗
411? 需要長(zhǎng)度
412 ?條件失敗
413? 請(qǐng)求實(shí)體太大
414? 請(qǐng)求URI太長(zhǎng)
415? 不支持媒體類型
⑤?服務(wù)器錯(cuò)誤
500 ?服務(wù)器內(nèi)部錯(cuò)誤
501 ?未實(shí)現(xiàn)(Not?Implemented)
502 ?網(wǎng)關(guān)失敗
504? 網(wǎng)關(guān)超時(shí)
505?HTTP版本不支持
關(guān)于實(shí)體頭部的內(nèi)容還可以有:
Last?Modified?:請(qǐng)求文檔的最近修改時(shí)間。
Expires?:請(qǐng)求文檔的過期時(shí)間。
Connect-length:文檔數(shù)據(jù)的長(zhǎng)度。
WWW-authenricate:通知客戶端需要的認(rèn)證信息。
Connect-encoding?:說明有無使用壓縮技術(shù)。
Transfer-encoding?:說明采用的編碼變換類型。
標(biāo)準(zhǔn)Http協(xié)議支持六種請(qǐng)求方法,即:
0,GET
1,HEAD
2,PUT
3,DELETE
4,POST
5,OPTIONS
但其實(shí)我們大部分情況下只用到了GET和POST。如果想設(shè)計(jì)一個(gè)符合RESTful規(guī)范的web應(yīng)用程序,則這六種方法都會(huì)用到。不過即使暫時(shí)不想涉及REST,了解這六種方法的本質(zhì)仍然是很有作用的。大家將會(huì)發(fā)現(xiàn),原來web也是很簡(jiǎn)潔明了的。下面依次說明這六種方法。
0,GET:GET可以說是最常見的了,它本質(zhì)就是發(fā)送一個(gè)請(qǐng)求來取得服務(wù)器上的某一資源。資源通過一組HTTP頭和呈現(xiàn)數(shù)據(jù)(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請(qǐng)求中,永遠(yuǎn)不會(huì)包含呈現(xiàn)數(shù)據(jù)。
1,HEAD:HEAD和GET本質(zhì)是一樣的,區(qū)別在于HEAD不含有呈現(xiàn)數(shù)據(jù),而僅僅是HTTP頭信息。有的人可能覺得這個(gè)方法沒什么用,其實(shí)不是這樣的。想象一個(gè)業(yè)務(wù)情景:欲判斷某個(gè)資源是否存在,我們通常使用GET,但這里用HEAD則意義更加明確。
2,PUT:這個(gè)方法比較少見。HTML表單也不支持這個(gè)。本質(zhì)上來講,?PUT和POST極為相似,都是向服務(wù)器發(fā)送數(shù)據(jù),但它們之間有一個(gè)重要區(qū)別,PUT通常指定了資源的存放位置,而POST則沒有,POST的數(shù)據(jù)存放位置由服務(wù)器自己決定。舉個(gè)例子:如一個(gè)用于提交博文的URL,/addBlog。如果用PUT,則提交的URL會(huì)是像這樣的”/addBlog/abc123”,其中abc123就是這個(gè)博文的地址。而如果用POST,則這個(gè)地址會(huì)在提交后由服務(wù)器告知客戶端。目前大部分博客都是這樣的。顯然,PUT和POST用途是不一樣的。具體用哪個(gè)還取決于當(dāng)前的業(yè)務(wù)場(chǎng)景。
3,DELETE:刪除某一個(gè)資源。基本上這個(gè)也很少見,不過還是有一些地方比如amazon的S3云服務(wù)里面就用的這個(gè)方法來刪除資源。
4,POST:向服務(wù)器提交數(shù)據(jù)。這個(gè)方法用途廣泛,幾乎目前所有的提交操作都是靠這個(gè)完成。
5,OPTIONS:這個(gè)方法很有趣,但極少使用。它用于獲取當(dāng)前URL所支持的方法。若請(qǐng)求成功,則它會(huì)在HTTP頭中包含一個(gè)名為“Allow”的頭,值是所支持的方法,如“GET,?POST”。
其實(shí)還有一個(gè)TRACE方法,不過這個(gè)基本上不會(huì)用到,這里就不介紹了。以上的六種方法,我們可以跟數(shù)據(jù)庫的CRUD增刪改查操作對(duì)應(yīng)起來:
CREATE?:PUT
READ:GET
UPDATE:POST
DELETE:DELETE
這樣一來就實(shí)現(xiàn)了HTTP和數(shù)據(jù)庫操作(其實(shí)不光是數(shù)據(jù)庫,任何數(shù)據(jù)如文件圖表都是這樣)的完美統(tǒng)一,這也是REST的精髓之一。
總結(jié)
以上是生活随笔為你收集整理的HTTP协议中常见请求方法以及一些常见错误代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年除了深度学习,人工智能算法有可
- 下一篇: 第二十七期:德国工业4.0眼里“工业互联