第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在HTTPPOST請求中發(fā)送參數(shù)?

如何在HTTPPOST請求中發(fā)送參數(shù)?

瀟瀟雨雨 2019-06-03 14:55:05
如何在HTTPPOST請求中發(fā)送參數(shù)?在HTTP中到達請求時,參數(shù)作為查詢字符串:http://example.com/page?parameter=value&also=another在HTTP中崗請求時,參數(shù)不會與URI一起發(fā)送。價值在哪里?在請求頭中?在請求者體內(nèi)?它長什么樣?
查看完整描述

4 回答

?
桃花長相依

TA貢獻1860條經(jīng)驗 獲得超8個贊

這些值以內(nèi)容類型指定的格式在請求正文中發(fā)送。

通常內(nèi)容類型是application/x-www-form-urlencoded,因此請求主體使用與查詢字符串相同的格式:

parameter=value&also=another

在窗體中使用文件上載時,可以使用multipart/form-data相反,編碼具有不同的格式。它更復雜,但你通常不需要關(guān)心它是什么樣子,所以我不會給出一個例子,但知道它的存在是好的。


查看完整回答
反對 回復 2019-06-03
?
波斯汪

TA貢獻1811條經(jīng)驗 獲得超4個贊

簡短答覆:在POST請求中,值在請求的“主體”中發(fā)送。使用web窗體時,它們最有可能是與以下媒體類型一起發(fā)送的:application/x-www-form-urlencodedmultipart/form-data..為處理web請求而設(shè)計的編程語言或框架通常對此類請求進行“正確的處理”(?),并為您提供對容易解碼的值的輕松訪問(如$_REQUEST$_POST在PHP中,或cgi.FieldStorage()flask.request.form在Python中)。


現(xiàn)在讓我們離題一點,這可能有助于理解其中的區(qū)別;)

.之間的區(qū)別GETPOST請求在很大程度上是語義的。它們也被不同地“使用”,這解釋了如何傳遞值的差異。

得到(相關(guān)RFC部分)

在執(zhí)行GET請求時,您向服務(wù)器請求一個或一組實體。為了允許客戶端過濾結(jié)果,它可以使用URL的所謂“查詢字符串”。查詢字符串是?..這是URI語法.

所以,從您的應用程序代碼的角度來看,接收,您將需要檢查URI查詢部分以獲得對這些值的訪問。

注意,鍵和值是URI的一部分。瀏覽器可以,可能限制URI長度。HTTP標準聲明沒有限制。但在撰寫本文時,大多數(shù)瀏覽器限制URI(我沒有特定的值)。GET請求應絕不可能用于向服務(wù)器提交新信息。尤其是更大的文件。那是你應該使用的地方POSTPUT.

員額(相關(guān)RFC部分)

在執(zhí)行POST請求時,客戶端實際上提交了一個新的文件遠程主機。所以,查詢字符串(在語義上)沒有意義。這就是為什么您無法在應用程序代碼中訪問它們的原因。

POST有點復雜(而且方式,道路(比較靈活):

當收到POST請求時,您應該總是期望得到一個“有效負載”,或者,用HTTP術(shù)語來說:消息體..消息體本身是非常無用的,因為沒有標準(據(jù)我所知。也許是應用程序/八位流?)格式。主體格式由Content-Type頭球。使用HTML時FORM元素method="POST",這通常是application/x-www-form-urlencoded..另一種非常常見的類型是多部分/表格-數(shù)據(jù)如果你使用文件上傳。但可能是什么都行,范圍從text/plain,完畢application/json甚至是一種習俗application/octet-stream.

無論如何,如果POST請求是用Content-Type應用程序無法處理的,則應返回415狀態(tài)碼.

大多數(shù)編程語言(和/或web-框架)提供了一種方法,可以將消息體從/編碼到最常見的類型(如application/x-www-form-urlencodedmultipart/form-dataapplication/json)。所以這很簡單。自定義類型可能需要更多的工作。

以標準HTML表單編碼文檔為例,應用程序應執(zhí)行以下步驟:

  1. 閱讀

    Content-Type

    場域
  2. 如果該值不是受支持的媒體類型之一,則使用

    415

    狀態(tài)碼
  3. 否則,從消息正文中解碼這些值。

同樣,PHP之類的語言或其他流行語言的web框架可能會為您處理這個問題。這方面的例外是415錯誤。沒有一個框架能夠預測應用程序選擇支持和/或不支持哪些內(nèi)容類型。這取決于你。

放(相關(guān)RFC部分)

PUT請求的處理方式與POST請求。最大的區(qū)別是POST請求應該讓服務(wù)器決定如何(如果有的話)創(chuàng)建一個新的資源。歷史上(從現(xiàn)在過時的RFC 2616開始,它將創(chuàng)建一個新資源,作為發(fā)送請求的URI的“從屬”(子)。

PUT相反,請求應該準確地“存放”資源。在…那個URI一點兒沒錯內(nèi)容。不多也不差。我們的想法是客戶負責制作完全資源在“投入”之前。服務(wù)器應該接受它。原樣在給定的URL上。

因此,POST請求通常不習慣于取代現(xiàn)有的資源。一個PUT請求可以同時創(chuàng)建替換。

旁注

還有“路徑參數(shù)“這些數(shù)據(jù)可以用來向遠程發(fā)送額外的數(shù)據(jù),但它們非常少見,所以我不會在這里詳細介紹。但是,作為參考,下面是RFC的摘錄:

除了層次化路徑中的點段之外,一般語法認為路徑段是不透明的.URI生成應用程序通常使用段中允許的保留字符來分隔特定于方案或取消引用處理程序的子組件。例如,分號(“;”)和等于(“=”)保留字符通常用于分隔適用于該段的參數(shù)和參數(shù)值。逗號(“,”)保留字符通常用于類似的目的。例如,一個URI生產(chǎn)者可能使用“name;v=1.1”這樣的段來表示對“name”版本1.1的引用,而另一個URI生產(chǎn)者可能使用“name,1.1”這樣的段來表示相同的內(nèi)容。參數(shù)類型可以由特定于方案的語義定義,但在大多數(shù)情況下,參數(shù)的語法特定于URI取消引用算法的實現(xiàn)。


查看完整回答
反對 回復 2019-06-03
  • 4 回答
  • 0 關(guān)注
  • 2464 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號