HTTP協議中常見請求方法以及一些常見錯誤代碼

GET:?請求指定的頁面信息,并返回實體主體。
HEAD:?只請求頁面的首部。
POST:?請求服務器接受所指定的文檔作為對所標識的URI的新的從屬實體。
PUT:?從客戶端向服務器傳送的數據取代指定的文檔的內容。
DELETE:?請求服務器刪除指定的頁面。
OPTIONS:?允許客戶端查看服務器的性能。
TRACE:?請求服務器在響應中的實體主體部分返回所得到的內容。
PATCH:?實體中包含一個表,表中說明與該URI所表示的原內容的區別。
MOVE:?請求服務器將指定的頁面移至另一個網絡地址。
COPY:?請求服務器將指定的頁面拷貝至另一個網絡地址。
LINK:?請求服務器建立鏈接關系。
UNLINK:?斷開鏈接關系。
WRAPPED:?允許客戶端發送經過封裝的請求。
Extension-mothed:在不改動協議的前提下,可增加另外的方法。

當服務器響應時,其狀態行的信息為HTTP的版本號,狀態碼,及解釋狀態碼的簡單說明。現將5類狀態碼詳細列出:
①?客戶方錯誤
100 ?繼續
101 ?交換協議
②?成功
200? OK
201? 已創建
202 ?接收
203 ?非認證信息
204 ?無內容
205? 重置內容
206 ?部分內容
③?重定向
300? 多路選擇
301 ?永久轉移
302 ?暫時轉移
303 ?參見其它
304? 未修改(Not?Modified)
305 ?使用代理
④?客戶方錯誤
400 ?錯誤請求(Bad?Request)
401? 未認證
402? 需要付費
403 ?禁止(Forbidden)
404 ?未找到(Not?Found)
405 ?方法不允許
406 ?不接受
407 ?需要代理認證
408 ?請求超時
409 ?沖突
410? 失敗
411? 需要長度
412 ?條件失敗
413? 請求實體太大
414? 請求URI太長
415? 不支持媒體類型
⑤?服務器錯誤
500 ?服務器內部錯誤
501 ?未實現(Not?Implemented)
502 ?網關失敗
504? 網關超時
505?HTTP版本不支持

關于實體頭部的內容還可以有:
Last?Modified?:請求文檔的最近修改時間。
Expires?:請求文檔的過期時間。
Connect-length:文檔數據的長度。
WWW-authenricate:通知客戶端需要的認證信息。
Connect-encoding?:說明有無使用壓縮技術。
Transfer-encoding?:說明采用的編碼變換類型。

標準Http協議支持六種請求方法,即:

0,GET
1,HEAD
2,PUT
3,DELETE
4,POST
5,OPTIONS

但其實我們大部分情況下只用到了GET和POST。如果想設計一個符合RESTful規范的web應用程序,則這六種方法都會用到。不過即使暫時不想涉及REST,了解這六種方法的本質仍然是很有作用的。大家將會發現,原來web也是很簡潔明了的。下面依次說明這六種方法。

0,GET:GET可以說是最常見的了,它本質就是發送一個請求來取得服務器上的某一資源。資源通過一組HTTP頭和呈現數據(如HTML文本,或者圖片或者視頻等)返回給客戶端。GET請求中,永遠不會包含呈現數據。
1,HEAD:HEAD和GET本質是一樣的,區別在于HEAD不含有呈現數據,而僅僅是HTTP頭信息。有的人可能覺得這個方法沒什么用,其實不是這樣的。想象一個業務情景:欲判斷某個資源是否存在,我們通常使用GET,但這里用HEAD則意義更加明確。
2,PUT:這個方法比較少見。HTML表單也不支持這個。本質上來講,?PUT和POST極為相似,都是向服務器發送數據,但它們之間有一個重要區別,PUT通常指定了資源的存放位置,而POST則沒有,POST的數據存放位置由服務器自己決定。舉個例子:如一個用于提交博文的URL,/addBlog。如果用PUT,則提交的URL會是像這樣的”/addBlog/abc123”,其中abc123就是這個博文的地址。而如果用POST,則這個地址會在提交后由服務器告知客戶端。目前大部分博客都是這樣的。顯然,PUT和POST用途是不一樣的。具體用哪個還取決于當前的業務場景。
3,DELETE:刪除某一個資源。基本上這個也很少見,不過還是有一些地方比如amazon的S3云服務里面就用的這個方法來刪除資源。
4,POST:向服務器提交數據。這個方法用途廣泛,幾乎目前所有的提交操作都是靠這個完成。
5,OPTIONS:這個方法很有趣,但極少使用。它用于獲取當前URL所支持的方法。若請求成功,則它會在HTTP頭中包含一個名為“Allow”的頭,值是所支持的方法,如“GET,?POST”。

其實還有一個TRACE方法,不過這個基本上不會用到,這里就不介紹了。以上的六種方法,我們可以跟數據庫的CRUD增刪改查操作對應起來:

CREATE?:PUT
READ:GET
UPDATE:POST
DELETE:DELETE

這樣一來就實現了HTTP和數據庫操作(其實不光是數據庫,任何數據如文件圖表都是這樣)的完美統一,這也是REST的精髓之一。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273412.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

license文件生成原理

byte解密weblogic加密oraclehex現在很多J2EE應用都采用一個license文件來授權系統的使用,特別是在系統購買的早期,會提供有限制的license文件對系統進行限制,比如試用版有譬如IP、日期、最大用戶數量的限制等。 而license控制的方法又有很…

linux常用關機命令及其區別-Shutdown halt reboot init

1.shutdown shutdown命令安全地將系統關機。 shutdown 參數說明: [-t] 在改變到其它runlevel之前﹐告訴init多久以后關機。 [-r] 重啟計算器。 [-k] 并不真正關機﹐只是送警告信號給每位登錄者〔login〕。 [-h] 關機后關閉電源〔halt〕。 [-n] 不用init﹐而是自己來關機。不鼓…

CSS3動畫@keyframes中translate和scale混用出錯問題

在寫基于網頁的2048時,想讓一個元素出現時已經通過translate屬性固定在指定位置,同時顯示動畫scale(0)-->scale(1),以實現放大出現效果。 CSS代碼為 -webkit-keyframes mymove_failed{0% {-webkit-transform:translate(50px,50px) scale…

metero學習

博客園首頁新隨筆聯系訂閱管理最新隨筆 最新評論 node.js相關的中文文檔及教程 (轉) Posted on 2013-08-30 10:40 小小清清 閱讀(61) 評論(0) 編輯 收藏 node.js api中英文對照: http://docs.cnodejs.net/cman/ node.js入門中文版: http://nodebeginner.org/index-zh-cn.html e…

Linux統計單個文件統計

語法:wc [選項] 文件… 說明:該命令統計給定文件中的字節數、字數、行數。如果沒有給出文件名,則從標準輸入讀取。wc同時也給出所有指定文件的總統計數。字是由空格字符區分開的最大字符串。 該命令各選項含義如下: - c 統計字節數…

jQuery慢慢啃之事件對象(十一)

1.event.currentTarget//在事件冒泡階段中的當前DOM元素 $("p").click(function(event) {alert( event.currentTarget this ); // true }); 2.event.data//當前執行的處理器被綁定的時候,包含可選的數據傳遞給jQuery.fn.bind。 $("a").ea…

Linuxcurl命令參數詳解

Linuxcurl是通過url語法在命令行下上傳或下載文件的工具軟件,它支持http,https,ftp,ftps,telnet等多種協議,常被用來抓取網頁和監控Web服務器狀態。1.linuxcurl抓取網頁:抓取百度:curlhttp://www.baidu.com如發現亂碼,…

android解析XML總結(SAX、Pull、Dom三種方式)

在android開發中&#xff0c;經常用到去解析xml文件&#xff0c;常見的解析xml的方式有一下三種&#xff1a;SAX、Pull、Dom解析方式。 今天解析的xml示例&#xff08;channels.xml&#xff09;如下&#xff1a; 1 <?xml version"1.0" encoding"utf-8"…

查看Eclipse中的jar包的源代碼:jd-gui.exe

前面搞了很久的使用JAD&#xff0c;各種下載插件&#xff0c;最后配置好了&#xff0c;還是不能用&#xff0c;不知道怎么回事&#xff0c; 想起一起用過的jd-gui.exe這個工具&#xff0c;是各種強大啊&#xff01;&#xff01;&#xff01; 只需要把jar包直接扔進去就可以了&a…

maven scope含義的說明

compile &#xff08;編譯范圍&#xff09; compile是默認的范圍&#xff1b;如果沒有提供一個范圍&#xff0c;那該依賴的范圍就是編譯范圍。編譯范圍依賴在所有的classpath 中可用&#xff0c;同時它們也會被打包。 provided &#xff08;已提供范圍&#xff09; provided 依…

此地址使用了一個通常用于網絡瀏覽以外的端口。出于安全原因,Firefox 取消了該請求...

FirFox打開80以外的端口&#xff0c;會彈出以下提示&#xff1a; “此地址使用了一個通常用于網絡瀏覽以外的端口。出于安全原因&#xff0c;Firefox 取消了該請求。”。 解決方法如下&#xff1a; 在Firefox地址欄輸入about:config,然后在右鍵新建一個字符串鍵network.securit…

Java操作shell腳本

public class Exec {private static ILogger logger LoggerFactory.getLogger(Exec.class);public Exec() {super();}/*** 執行命令&#xff08;如Shell腳本&#xff09;<br>* * param cmd 操作命令* param timeout 超時時間* return 命令執行過程輸出內容* * throws IO…

Mysql更新插入

在向表中插入數據的時候&#xff0c;經常遇到這樣的情況&#xff1a;1. 首先判斷數據是否存在&#xff1b; 2. 如果不存在&#xff0c;則插入&#xff1b;3.如果存在&#xff0c;則更新。 在 SQL Server 中可以這樣處理&#xff1a; if not exists (select 1 from t where id …

信息加密之信息摘要加密MD2、MD4、MD5

對于用戶數據的保密一直是各個互聯網企業頭疼的事&#xff0c;那如何防止用戶的個人信息泄露呢&#xff1f;今天為大家介紹一種最簡單的加密方式--信息摘要算法MD。它如何來保護用戶的個人信息呢&#xff1f;其實很簡單&#xff0c;當獲得到用戶的信息后&#xff0c;先對其進行…

Java 從網絡上下載文件

/*** 下載文件到本地 */public static void downloadPicture(String imageUrl, String filename){ URL url;try {url new URL(imageUrl);//打開網絡輸入流DataInputStream dis new DataInputStream(url.openStream());//建立一個新的文件FileOutputStream fos new FileOutp…

An error was encountered while running(Domain=LaunchSerivcesError, Code=0)

今天突然遇到這樣一個錯誤&#xff0c;編譯可以通過&#xff0c;但是運行就會彈出這個錯誤提示&#xff1a; An error was encountered while running(DomainLaunchSerivcesError, Code0) 解決辦法就是重置模擬器。 點擊模擬器菜單中的Reset Contents and Settings&#xff0c;…

hdu 4091 線性規劃

分析轉自&#xff1a;http://blog.csdn.net/dongdongzhang_/article/details/7955136 題意 &#xff1a; 背包能裝體積為N, 有兩種寶石&#xff0c; 數量無限&#xff0c; 不能切割。 分別為 size1 value 1 size2 value2 問背包能裝最大的價值&#xff1f; 思路 &#xff…

linux fmt命令

簡單的格式化文本 fmt [option] [file-list] fmt通過將所有非空白行的長度設置為幾乎相同&#xff0c;來進行簡單的文本格式化 參數 fmt從file-list中讀取文件&#xff0c;并將其內容的格式化版本發送到標準輸出。如果不制定文件名或者用連字符&#xff08;-&#xff09;來替代…

基于 jQuery支持移動觸摸設備的Lightbox插件

Swipebox是一款支持桌面、移動觸摸手機和平板電腦的jquery Lightbox插件。該lightbox插件支持手機的觸摸手勢&#xff0c;支持桌面電腦的鍵盤導航&#xff0c;并且支持視頻的播放。 在線預覽 源碼下載 簡要教程 Swipebox是一款支持桌面、移動觸摸手機和平板電腦的jQuery Ligh…

簡化工作——我的bat文件

重啟adb(radb.bat)&#xff1a; echo off call adb kill-server call adb start-server call adb remount push 一個apk(push.bat) echo off if "%1""launcher" ( call adb push 相關apk路徑 system/app )else ( echo 請添加一個參數!當前有效…