http post請求方式

2021-10-14 04:03:59 字數 2992 閱讀 7025

1)先把form表單裡的表單元素的name屬性和value屬性進行收集。

2)按照enctype屬性的設定,選擇合適的編碼方式,對資料進行編碼,放在請求頭里

3)瀏覽器進行傳送。

此時可以看到:

title=test&sub%5b%5d=1&sub%5b%5d=2&sub%5b%5d=3

1)它是post的預設格式,使用js中urlencode轉碼方法。

包括將name、value中的空格替換為加號;將非ascii字元做百分號編碼;將input的name、value用『=』連線,不同的input之間用『&』連線。

2)百分號編碼什麼意思呢。

比如漢字『丁』吧,他的utf8編碼在十六進製制下是0xe4b881,佔3個位元組,把它轉成字串『e4b881』,變成了六個位元組,每兩個位元組前加上百分號字首,得到字串「%e4%b8%81」,變成九個ascii字元,佔九個位元組(十六進製制下是0x244534254238253831)。

把這九個位元組拼接到資料報裡,這樣就可以傳輸「非ascii字元的 utf8編碼的 十六進製制表示的 字串的 百分號形式」,^_^。

3)同樣使用urlencode轉碼,這種post格式跟get的區別在於,get把轉換、拼接完的字串用『?』直接與表單的action連線作為url使用,所以請求體裡沒有資料;

而post把轉換、拼接後的字串放在了請求體裡,不會在瀏覽器的位址列顯示,因而更安全一些。

這也是常見的post請求方式,一般用來上傳檔案,各大伺服器的支援也比較好。

所以我們使用表單 上傳檔案 時,必須讓

瀏覽器將會傳送以下資料:

從上面的 multipart/form-data 格式傳送的請求的樣式來看,

它包含了多個 parts,每個 part 都包含頭資訊部分,part 頭資訊中必須包含乙個 content-disposition 頭,

其他的頭資訊則為可選項, 比如 content-type 等。

content-disposition 包含了 type 和 乙個名字為 name 的 parameter,

type 是 form-data,name 引數的值則為表單控制項(也即 field)的名字,

如果是檔案,那麼還有乙個 filename 引數,值就是檔名。

比如:

content-disposition: form-data; name="user"; filename="hello.txt"
上面的 「user」 就是表單中的控制項的名字,後面的引數 filename 則是點選的檔名。對於可選的 content-type(如果沒有的話),預設就是 text/plain。下面,我們填充兩個檔案到乙個表單項中,行程的請求資訊如下:

content-type: multipart/form-data; boundary=aab03x

--aab03x

content-disposition: form-data; name="submit-name"

larry

--aab03x

content-disposition: form-data; name="files"

content-type: multipart/mixed; boundary=bbc04y

--bbc04y

content-disposition: file; filename="file1.txt"

content-type: text/plain

... contents of file1.txt ...

--bbc04y

content-disposition: file; filename="file2.gif"

content-type: image/gif

content-transfer-encoding: binary

...contents of file2.gif...

--bbc04y--

--aab03x--

http post請求方式

1 先把form表單裡的表單元素的name屬性和value屬性進行收集。2 按照enctype屬性的設定,選擇合適的編碼方式,對資料進行編碼,放在請求頭里 3 瀏覽器進行傳送。此時可以看到 title test sub 5b 5d 1 sub 5b 5d 2 sub 5b 5d 3 1 它是post...

php 傳送http post請求

php curl post請求中攜帶header引數 或者 header 0 text html q 0.9,text plain q 0.8,image png,q 0.5 header cache control max age 0 header connection keep alive he...

HTTP Post請求過程詳解

摘要 http hypertext transfer protocol 超文字傳輸協議,是乙個客戶端和伺服器端請求和應答的標準 tcp 客戶端是終端使用者,伺服器端是 http是基於socket之上的協議。http post是上傳資料到伺服器。請求報文 12 post post請求 web logi...