App下載

HTTP的兩種常用請求方式GET和POST

猿友 2021-02-22 14:16:49 瀏覽數(shù) (10202)
反饋

HTTP的兩種常用請求方式GET和POST

HTTP:HTTP協(xié)議(HyperText Transfer),用于從萬維網(wǎng)(WWWW:World Wide Web)服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議。HTTP是一個基于 TCP/IP 通信協(xié)議來傳遞數(shù)據(jù)(HTML文件,圖片文件,查詢結(jié)果等)。

一、GET方法

使用 GET 方法時,查詢字符串(名稱或鍵值對)是在 GET 請求的 URL 中發(fā)送的:

/test/demo_form.php?name1=value1&name2=value2

說明

  • POST 請求不會被緩存
  • POST 請求不會保留在瀏覽器歷史記錄中
  • POST請求的URL不能被收藏為書簽
  • POST 請求沒有長度要求

HTTP的方法中POST向后臺傳輸數(shù)據(jù)比較可靠,POST 方法打包信息的方式與 GET 方法基本相同,但是 POST 方法不是把信息作為 URL 中 ? 字符后的文本字符串進(jìn)行發(fā)送,而是把這些信息作為一個單獨的消息進(jìn)行發(fā)送。Servlet 使用 doPost() 方法處理這種類型的請求。

三、GET方法與POST方法的區(qū)別

  • 在瀏覽器進(jìn)行回退操作時,GET請求是無害的,而POST請求則會重新請求一次
  • GET請求參數(shù)是連接在URL后面的,而POST請求參數(shù)是存放在消息主體(Requestbody)內(nèi)
  • GET請求因為瀏覽器對url長度有限制(不同瀏覽器長度限制不一樣)對傳參數(shù)量有限制,而post請求因為參數(shù)存放Requestbody內(nèi)所以參數(shù)數(shù)量沒有限制
  • 因為GET請求參數(shù)暴露在URL上,所以安全方面POST比GET更加安全
  • GET請求瀏覽器會主動緩存(Cache),POST并不會,除非主動設(shè)置
  • GET請求參數(shù)會保存在瀏覽器歷史記錄內(nèi),POST請求并不會
  • GET請求只能進(jìn)行URL編碼,而POST請求可以支持多種編碼方式
  • GET請求產(chǎn)生1個Tcp數(shù)據(jù)包,POST請求產(chǎn)生2個Tcp數(shù)據(jù)包
  • 瀏覽器在發(fā)送GET請求時會將請求頭(Header)和數(shù)據(jù)(Data)一起發(fā)送給服務(wù)器,服務(wù)器返回200狀態(tài)碼,而在發(fā)送POST請求時,會先將Header發(fā)送給服務(wù)器,服務(wù)器返回100,之后再將Data發(fā)送給服務(wù)器,服務(wù)器返回200

說明:

  • GET 請求可被緩存
  • GET 請求保留在瀏覽器歷史記錄中
  • GET 請求的URL可被收藏為書簽
  • GET 請求不應(yīng)在處理敏感數(shù)據(jù)時使用
  • GET 請求有長度限制
  • GET 請求只應(yīng)當(dāng)用于獲取數(shù)據(jù)

GET 方法是默認(rèn)的從瀏覽器向 Web 服務(wù)器傳遞信息的請求方法,它會產(chǎn)生一個很長的字符串,出現(xiàn)在瀏覽器的地址欄中。GET 方法有大小限制:請求字符串中最多只能有 1024 個字符。Servlet 

二、POST方法

使用POST方法時,查詢字符串(名稱或鍵值對)是在POST請求的HTTP消息主體重發(fā)送的:使用 doGet()方法處理這種類型的請求。

POST /test/demo_form.php HTTP/1.1
Host: runoob.com
name1=value1&name2=value2

說明

  • POST 請求不會被緩存
  • POST 請求不會保留在瀏覽器歷史記錄中
  • POST請求的URL不能被收藏為書簽
  • POST 請求沒有長度要求

HTTP的方法中POST向后臺傳輸數(shù)據(jù)比較可靠,POST 方法打包信息的方式與 GET 方法基本相同,但是 POST 方法不是把信息作為 URL 中 ? 字符后的文本字符串進(jìn)行發(fā)送,而是把這些信息作為一個單獨的消息進(jìn)行發(fā)送。Servlet 使用 doPost() 方法處理這種類型的請求。

三、GET方法與POST方法的區(qū)別

  • 在瀏覽器進(jìn)行回退操作時,GET 請求是無害的,而 POST 請求則會重新請求一次
  • GET 請求參數(shù)是連接在 URL 后面的,而POST請求參數(shù)是存放在消息主體(Requestbody)內(nèi)
  • GET 請求因為瀏覽器對 url 長度有限制(不同瀏覽器長度限制不一樣)對傳參數(shù)量有限制,而 post 請求因為參數(shù)存放 Requestbody 內(nèi)所以參數(shù)數(shù)量沒有限制 
  • 因為 GET 請求參數(shù)暴露在URL上,所以安全方面 POST 比 GET 更加安全
  • GET 請求瀏覽器會主動緩存(Cache),POST 并不會,除非主動設(shè)置
  • GET 請求參數(shù)會保存在瀏覽器歷史記錄內(nèi),POST 請求并不會
  • GET 請求只能進(jìn)行 URL 編碼,而 POST 請求可以支持多種編碼方式
  • GET 請求產(chǎn)生1個 Tcp 數(shù)據(jù)包,POST 請求產(chǎn)生2個 Tcp 數(shù)據(jù)包
  • 瀏覽器在發(fā)送 GET 請求時會將請求頭(Header)和數(shù)據(jù)(Data)一起發(fā)送給服務(wù)器,服務(wù)器返回200狀態(tài)碼,而在發(fā)送 POST 請求時,會先將 Header 發(fā)送給服務(wù)器,服務(wù)器返回100,之后再將 Data 發(fā)送給服務(wù)器,服務(wù)器返回200

推薦好課:HTML微課HTML+CSS基礎(chǔ)實戰(zhàn)、HTML5新特性實戰(zhàn)


0 人點贊