欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單介紹HTTP請求方式中8種請求方法

 更新時間:2019年09月15日 11:35:45   作者:邦☆杠  
這篇文章主要介紹了HTTP請求方式中8種請求方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下

簡單介紹

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

HTTP請求的方法:HTTP/1.1協(xié)議中共定義了八種方法(有時也叫“動作”),來表明Request-URL指定的資源不同的操作方式HTTP1.0定義了三種請求方法: GET, POST 和 HEAD方法。HTTP1.1新增了五種請求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

1、OPTIONS返回服務器針對特定資源所支持的HTTP請求方法,也可以利用向web服務器發(fā)送‘*'的請求來測試服務器的功能性2、HEAD向服務器索與GET請求相一致的響應,只不過響應體將不會被返回。這一方法可以再不必傳輸整個響應內(nèi)容的情況下,就可以獲取包含在響應小消息頭中的元信息。3、GET向特定的資源發(fā)出請求。注意:GET方法不應當被用于產(chǎn)生“副作用”的操作中,例如在Web Application中,其中一個原因是GET可能會被網(wǎng)絡蜘蛛等隨意訪問。Loadrunner中對應get請求函數(shù):web_link和web_url4、POST向指定資源提交數(shù)據(jù)進行處理請求(例如提交表單或者上傳文件)。數(shù)據(jù)被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 Loadrunner中對應POST請求函數(shù):

web_submit_data,web_submit_form5、PUT向指定資源位置上傳其最新內(nèi)容6、DELETE請求服務器刪除Request-URL所標識的資源7、TRACE回顯服務器收到的請求,主要用于測試或診斷8、CONNECTHTTP/1.1協(xié)議中預留給能夠?qū)⑦B接改為管道方式的代理服務器。注意:1)方法名稱是區(qū)分大小寫的,當某個請求所針對的資源不支持對應的請求方法的時候,服務器應當返回狀態(tài)碼405(Mothod Not Allowed);當服務器不認識或者不支持對應的請求方法時,應返回狀態(tài)碼501(Not Implemented)。2)HTTP服務器至少應該實現(xiàn)GET和HEAD/POST方法,其他方法都是可選的,此外除上述方法,特定的HTTP服務器支持擴展自定義的方法。HTTP工作原理

HTTP協(xié)議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面?zhèn)魉徒o客戶端。HTTP協(xié)議采用了請求/響應模型。客戶端向服務器發(fā)送一個請求報文,請求報文包含請求的方法、URL、協(xié)議版本、請求頭部和請求數(shù)據(jù)。服務器以一個狀態(tài)行作為響應,響應的內(nèi)容包括協(xié)議的版本、成功或者錯誤代碼、服務器信息、響應頭部和響應數(shù)據(jù)。

HTTP 請求/響應的步驟:

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

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

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

2、發(fā)送HTTP請求

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

3、服務器接受請求并返回HTTP響應Web服務器解析請求,定位請求資源。服務器將資源復本寫到TCP套接字,由客戶端讀取。一個響應由狀態(tài)行、響應頭部、空行和響應數(shù)據(jù)4部分組成。4、釋放連接TCP連接

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

5、客戶端瀏覽器解析HTML內(nèi)容

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

HTTP請求消息Request客戶端發(fā)送一個HTTP請求到服務器的請求消息包括以下格式請求行(request line)、請求頭部(header)、空行和請求數(shù)據(jù)四個部分組成。

請求行以一個方法符號開頭,以空格分開,后面跟著請求的URI和協(xié)議的版本Get請求例子,使用Charles抓取的request:

GET /562f25980001b1b106000338.jpg HTTP/1.1
Host  img.mukewang.com
User-Agent  Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept  image/webp,image/*,*/*;q=0.8
Referer  http://www.imooc.com/
Accept-Encoding  gzip, deflate, sdch
Accept-Language  zh-CN,zh;q=0.8

第一部分:請求行,用來說明請求類型,要訪問的資源以及所使用的HTTP版本.

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

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

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

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

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

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

這個例子的請求數(shù)據(jù)為空。

POST請求例子,使用Charles抓取的request:

POST / HTTP1.1
Host:www.wrox.com
User-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-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

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

HTTP請求消息Response

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

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

例子

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8

<html>
   <head></head>
   <body>
      <!--body goes here-->
   </body>
</html>

第一部分:狀態(tài)行,由HTTP協(xié)議版本號, 狀態(tài)碼, 狀態(tài)消息 三部分組成。

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

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

第二行和第三行為消息報頭,

Date:生成響應的日期和時間;Content-Type:指定了MIME類型的HTML(text/html),編碼類型是UTF-8

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

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

請求返回狀態(tài)碼:

200OK 當您的操作將在響應正文中返回數(shù)據(jù)時,出現(xiàn)此結果。

204No Content當您的操作成功,但不在響應正文中返回數(shù)據(jù)時,出現(xiàn)此結果。

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

403Forbidden 客戶端錯誤

401Unauthorized客戶端錯誤

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

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

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

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

412Precondition Failed 客戶端錯誤

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

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

GET與POST:

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

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

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

主要特點

1、無連接

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

2、無狀態(tài)

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

3、簡單快速

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

4、靈活

HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標記。

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

作業(yè):了解 HTTP 協(xié)議的基本知識,包括請求流程、請求方法等

  http是超文本傳輸協(xié)議,默認端口號為80,客戶端是動態(tài)的,瀏覽器會自動默認為80

  https默認端口號為443

  請求方法8種

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

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

  流程為:狀態(tài)行、消息報頭、空行和響應正文

  請求響應步驟:

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

總結

以上所述是小編給大家介紹的HTTP請求方式中8種請求方法,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

相關文章

  • kettle?入門使用教程(最新版)

    kettle?入門使用教程(最新版)

    Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上運行,數(shù)據(jù)抽取高效穩(wěn)定,本文以7.0.0.0-25版本為例給大家詳細講解下載安裝入門級教程,感興趣的朋友一起看看吧
    2022-11-11
  • 關于HTTPS的TSL握手

    關于HTTPS的TSL握手

    這篇文章主要介紹了關于HTTPS的TSL握手,HTTP一般基于TCP協(xié)議,而HTTPS就是在這之間加了SSL/TLS協(xié)議,那么在TCP三次握手建立TCP連接后,就需要TLS握手建立SSL/TLS連接,需要的朋友可以參考下
    2023-04-04
  • Git 教程簡單入門介紹

    Git 教程簡單入門介紹

    本文主要介紹Git 教程簡單入門的東西,這里整理了Git 的基礎資料和簡單命令,有需要的小伙伴可以參考下
    2016-09-09
  • GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用方法

    GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用方法

    GCC?是?Linux?下的編譯工具集,是「GNU?Compiler?Collection」的縮寫,包含?gcc、g++?等編譯器,這篇文章主要介紹了GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用,需要的朋友可以參考下
    2022-10-10
  • git中cherry-pick命令的使用教程

    git中cherry-pick命令的使用教程

    這篇文章介紹了git中cherry-pick命令的使用方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • Hive?判斷某個字段長度的示例代碼

    Hive?判斷某個字段長度的示例代碼

    hive是基于Hadoop的一個數(shù)據(jù)倉庫工具,用來進行數(shù)據(jù)提取、轉(zhuǎn)化、加載,這是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的機制,這篇文章主要介紹了Hive?判斷某個字段長度,需要的朋友可以參考下
    2024-08-08
  • ChatGPT平替-?ChatGLM多用戶并行訪問部署過程

    ChatGPT平替-?ChatGLM多用戶并行訪問部署過程

    這篇文章主要介紹了ChatGPT平替-?ChatGLM多用戶并行訪問部署,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 解決使用IDE Run運行出錯package pack/test is not in GOROOT (/usr/local/go/src/pack/test)

    解決使用IDE Run運行出錯package pack/test is not in GOROOT (/usr/loca

    這篇文章主要介紹了解決使用IDE Run運行出錯package pack/test is not in GOROOT (/usr/local/go/src/pack/test),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 關于Centos7中Vscode無響應的問題及解決方法

    關于Centos7中Vscode無響應的問題及解決方法

    在CentOS7中使用命令行直接安裝Vscode時,打開Vscode出現(xiàn)界面卡死、無響應情況,如何處理這個問題呢,今天小編給大家?guī)砹薈entos7中Vscode無響應的問題及解決方法,感興趣的朋友一起看看吧
    2021-07-07
  • gradle+shell實現(xiàn)自動系統(tǒng)簽名

    gradle+shell實現(xiàn)自動系統(tǒng)簽名

    這篇文章主要介紹了gradle+shell實現(xiàn)自動系統(tǒng)簽名的相關資料,需要的朋友可以參考下
    2019-08-08

最新評論