婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 簡單介紹HTTP請求方式中8種請求方法

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

熱門標簽:地圖標注資源分享注冊 合肥阿里辦理400電話號 北京外呼系統咨詢電話 廊坊地圖標注申請入口 襄陽外呼增值業務線路解決方案 海南人工外呼系統哪家好 怎么去掉地圖標注文字 慶陽外呼系統定制開發 高德地圖標注公司位置需要錢嗎

簡單介紹

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_url4、POST向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST請求可能會導致新的資源的建立和/或已有資源的修改。 Loadrunner中對應POST請求函數:

web_submit_data,web_submit_form5、PUT向指定資源位置上傳其最新內容6、DELETE請求服務器刪除Request-URL所標識的資源7、TRACE回顯服務器收到的請求,主要用于測試或診斷8、CONNECTHTTP/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.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,服務器端和客戶端腳本都能訪問它,它是瀏覽器類型檢測邏輯的重要基礎.該信息由你的瀏覽器來定義,并且在每個請求中自動發送等等

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

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

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

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

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%20Ajaxpublisher=Wiley

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

HTTP請求消息Response

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

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

例子

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>

第一部分:狀態行,由HTTP協議版本號, 狀態碼, 狀態消息 三部分組成。

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

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

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

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

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

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

請求返回狀態碼:

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

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

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

403Forbidden 客戶端錯誤

401Unauthorized客戶端錯誤

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

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

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

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

412Precondition Failed 客戶端錯誤

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

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

GET與POST:

 “get”方法提交的數據會直接填充在請求報文的URL上,如“https://www.baidu.com/s?ie=utf-8f=8rsv_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內容

總結

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

您可能感興趣的文章:
  • 詳解java實現HTTP請求的三種方式
  • Android小知識之OkHttp的2種請求方式詳解
  • 淺談PHP發送HTTP請求的幾種方式
  • MVC 5限制所有HTTP請求必須是POST方式
  • java發送http get請求的兩種方式
  • python通過get,post方式發送http請求和接收http響應的方法
  • c++實現發送http請求通過get方式獲取網頁源代碼

標簽:株洲 綿陽 鎮江 商丘 臺州 哈密 平頂山 鶴崗

巨人網絡通訊聲明:本文標題《簡單介紹HTTP請求方式中8種請求方法》,本文關鍵詞  簡單,介紹,HTTP,請求,方式,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《簡單介紹HTTP請求方式中8種請求方法》相關的同類信息!
  • 本頁收集關于簡單介紹HTTP請求方式中8種請求方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 太和县| 无棣县| 迭部县| 余江县| 奉节县| 象州县| 花莲县| 县级市| 临颍县| 龙川县| 青冈县| 宁武县| 德保县| 紫阳县| 芷江| 拜泉县| 睢宁县| 临西县| 徐水县| 仪陇县| 梁平县| 元阳县| 綦江县| 新宁县| 凌源市| 岳阳县| 扎兰屯市| 全南县| 本溪市| 睢宁县| 高陵县| 浮梁县| 临安市| 杭锦后旗| 南安市| 南昌市| 墨玉县| 长阳| 吉首市| 大同县| 淮北市|