精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
HTTP請求方式中8種請求方法(簡單介紹)

簡單介紹

HTTP是超文本傳輸協議,其定義了客戶端與服務器端之間文本傳輸的規范。HTTP默認使用80端口,這個端口指的是服務端的端口,而客戶端使用的端口是動態分配的。當我們沒有指定端口訪問時,瀏覽器會默認幫我們添加80端口。我們也可以自己指定訪問端口如:http://www.ip138.com:80。 需要注意的是,現在大多數訪問都使用了HTTPS協議,而HTTPS的默認端口為443,如果使用80端口訪問HTTPS協議的服務器可能會被拒絕。

 

HTTP請求的方法:

HTTP/1.1協議中共定義了八種方法(有時也叫“動作”),來表明Request-URL指定的資源不同的操作方式

HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

 

1、OPTIONS
返回服務器針對特定資源所支持的HTTP請求方法,也可以利用向web服務器發送‘*’的請求來測試服務器的功能性
2、HEAD
向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以再不必傳輸整個響應內容的情況下,就可以獲取包含在響應小消息頭中的元信息。
3、GET
向特定的資源發出請求。注意:GET方法不應當被用于產生“副作用”的操作中,例如在Web Application中,其中一個原因是GET可能會被網絡蜘蛛等隨意訪問。Loadrunner中對應get請求函數:web_link和web_url
4、POST
向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 Loadrunner中對應POST請求函數:web_submit_data,web_submit_form
5、PUT
向指定資源位置上傳其最新內容
6、DELETE
請求服務器刪除Request-URL所標識的資源
7、TRACE
回顯服務器收到的請求,主要用于測試或診斷
8、CONNECT
HTTP/1.1協議中預留給能夠將連接改為管道方式的代理服務器。
注意:
1)方法名稱是區分大小寫的,當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態碼405(Mothod Not Allowed);當服務器不認識或者不支持對應的請求方法時,應返回狀態碼501(Not Implemented)。
2)HTTP服務器至少應該實現GET和HEAD/POST方法,其他方法都是可選的,此外除上述方法,特定的HTTP服務器支持擴展自定義的方法。

HTTP工作原理

HTTP協議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面傳送給客戶端。HTTP協議采用了請求/響應模型。客戶端向服務器發送一個請求報文,請求報文包含請求的方法、URL、協議版本、請求頭部和請求數據。服務器以一個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤代碼、服務器信息、響應頭部和響應數據。

 HTTP 請求/響應的步驟:

客戶端連接到Web服務器->發送Http請求->服務器接受請求并返回HTTP響應->釋放連接TCP連接->客戶端瀏覽器解析HTML內容

1、客戶端連接到Web服務器

一個HTTP客戶端,通常是瀏覽器,與Web服務器的HTTP端口(默認為80)建立一個TCP套接字連接。例如,http://www.baidu.com

2、發送HTTP請求

通過TCP套接字,客戶端向Web服務器發送一個文本的請求報文,一個請求報文由請求行、請求頭部、空行和請求數據4部分組成。

3、服務器接受請求并返回HTTP響應

Web服務器解析請求,定位請求資源。服務器將資源復本寫到TCP套接字,由客戶端讀取。一個響應由狀態行、響應頭部、空行和響應數據4部分組成。

4、釋放連接TCP連接

若connection 模式為close,則服務器主動關閉TCP連接,客戶端被動關閉連接,釋放TCP連接;若connection 模式為keepalive,則該連接會保持一段時間,在該時間內可以繼續接收請求;

5、客戶端瀏覽器解析HTML內容

客戶端瀏覽器首先解析狀態行,查看表明請求是否成功的狀態代碼。然后解析每一個響應頭,響應頭告知以下為若干字節的HTML文檔和文檔的字符集。客戶端瀏覽器讀取響應數據HTML,根據HTML的語法對其進行格式化,并在瀏覽器窗口中顯示。

HTTP請求消息Request

客戶端發送一個HTTP請求到服務器的請求消息包括以下格式

請求行(request line)、請求頭部(header)、空行和請求數據四個部分組成。

請求行以一個方法符號開頭,以空格分開,后面跟著請求的URI和協議的版本
Get請求例子,使用Charles抓取的request:
GET /562f25980001b1b106000338.jpg HTTP/1.1Host    img.mukewang.comUser-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36Accept    image/webp,image/*,*/*;q=0.8Referer    http://www.imooc.com/Accept-Encoding    gzip, deflate, sdchAccept-Language    zh-CN,zh;q=0.8
第一部分:請求行,用來說明請求類型,要訪問的資源以及所使用的HTTP版本.

GET說明請求類型為GET,[/562f25980001b1b106000338.jpg]為要訪問的資源,該行的最后一部分說明使用的是HTTP1.1版本。

第二部分:請求頭部,緊接著請求行(即第一行)之后的部分,用來說明服務器要使用的附加信息

從第二行起為請求頭部,HOST將指出請求的目的地.User-Agent,服務器端和客戶端腳本都能訪問它,它是瀏覽器類型檢測邏輯的重要基礎.該信息由你的瀏覽器來定義,并且在每個請求中自動發送等等

第三部分:空行,請求頭部后面的空行是必須的

即使第四部分的請求數據為空,也必須有空行。

第四部分:請求數據也叫主體,可以添加任意的其他數據。

這個例子的請求數據為空。

POST請求例子,使用Charles抓取的request:
POST / HTTP1.1Host:www.wrox.comUser-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)Content-Type:application/x-www-form-urlencodedContent-Length:40Connection: Keep-Alivename=Professional%20Ajax&publisher=Wiley

第一部分:請求行,第一行明了是post請求,以及http1.1版本。
第二部分:請求頭部,第二行至第六行。
第三部分:空行,第七行的空行。
第四部分:請求數據,第八行。

HTTP請求消息Response

一般情況下,服務器接收并處理客戶端發過來的請求后會返回一個HTTP的響應消息。

HTTP響應也由四個部分組成,分別是:狀態行、消息報頭、空行和響應正文

 

例子

HTTP/1.1 200 OKDate: Fri, 22 May 2009 06:07:21 GMTContent-Type: text/html; charset=UTF-8<html>      <head></head>      <body>            <!--body goes here-->      </body></html>
第一部分:狀態行,由HTTP協議版本號, 狀態碼, 狀態消息 三部分組成。

第一行為狀態行,(HTTP/1.1)表明HTTP版本為1.1版本,狀態碼為200,狀態消息為(ok)

第二部分:消息報頭,用來說明客戶端要使用的一些附加信息

第二行和第三行為消息報頭,
Date:生成響應的日期和時間;Content-Type:指定了MIME類型的HTML(text/html),編碼類型是UTF-8

第三部分:空行,消息報頭后面的空行是必須的
第四部分:響應正文,服務器返回給客戶端的文本信息。

空行后面的html部分為響應正文。

請求返回狀態碼:

200 OK  當您的操作將在響應正文中返回數據時,出現此結果。

204 No Content 當您的操作成功,但不在響應正文中返回數據時,出現此結果。

304 Not Modified(重定向)  當測試實體自上次檢索以來是否被修改時,出現此結果。

403 Forbidden   客戶端錯誤

401 Unauthorized 客戶端錯誤

413 Payload Too Large(客戶端錯誤) 當請求長度過長時,出現此結果。

400 BadRequest(客戶端錯誤) 當參數無效時,出現此結果。

404 Not Found(客戶端錯誤) 當資源不存在時,出現此結果。

405 Method Not Allowed(客戶端錯誤)由于方法和資源組合不正確而出現此錯誤。 例如,您不能對一個實體集合使用 DELETE 或 PATCH。

412 Precondition Failed  客戶端錯誤

501 Not Implemented(服務器錯誤) 當未實施某個請求的操作時,出現此結果。

503 Service Unavailable(服務器錯誤) 當 Web API 服務不可用時,出現此結果。

GET與POST:

 “get”方法提交的數據會直接填充在請求報文的URL上,如“ https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1 ”   “?”問號劃分域名和get提交的參數,A=B中的A是參數名,B是參數值,多個參數之間用&進行分割,如果參數值是中文,則會轉換成諸如%ab%12加密16進制碼。一般來說,瀏覽器處理的URL最大限度長度為1024B(不同瀏覽器不一樣),所以GET方法提交參數長度有限制。

        “post”方法提交的數據會附在正文上,一般請求正文的長度是沒有限制的,但表單中所能處理的長度一般為100k(不同協議不同瀏覽器不一樣),而且需要考慮下層報文的傳輸效率,不推薦過長。

        所以GET方法可以用來傳輸一些可以公開的參數信息,解析也比較方便,如百度的搜索的關鍵詞,而POST方法可以用來提交一個用戶的敏感信息(如果不使用HTTPS加密,報文正文仍舊是明文,容易被人截獲讀取)

主要特點

1、無連接

無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。

2、無狀態

HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。

 3、簡單快速

客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。

4、靈活

HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。

5、支持B/S及C/S模式

 

 

作業:

了解 HTTP 協議的基本知識,包括請求流程、請求方法等

  http是超文本傳輸協議,默認端口號為80,客戶端是動態的,瀏覽器會自動默認為80

  https默認端口號為443

  請求方法8種

  get、post、put、delete、options、trace、connect、head

  請求流程2種分為request和response,但是他們的流程都是相同的,一個請求一個接收

  流程為:狀態行、消息報頭、空行和響應正文

  請求響應步驟:

  客戶端連接到Web服務器->發送Http請求->服務器接受請求并返回HTTP響應->釋放連接TCP連接->客戶端瀏覽器解析HTML內容

   

 

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
http協議原理
【Linux】HTTP響應報文與工作原理詳解
【網絡知識補習】??| 由淺入深了解HTTP(七)典型的 HTTP 會話介紹 + 簡單實例
[C#]網絡編程系列:HTTP協議詳解
HTTP協議及其工作原理介紹
超文本傳輸協議
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 德安县| 洞头县| 金湖县| 尉氏县| 浙江省| 西华县| 时尚| 都安| 自治县| 进贤县| 华宁县| 白山市| 蓬莱市| 榆林市| 通化市| 进贤县| 汝城县| 镇原县| 鞍山市| 桂东县| 彭山县| 台中县| 锡林郭勒盟| 当雄县| 长治县| 政和县| 长丰县| 浏阳市| 合川市| 永川市| 来宾市| 修文县| 巴青县| 连州市| 巴塘县| 和平县| 大悟县| 虞城县| 浦城县| 深泽县| 囊谦县|