本文介紹PHP中Http協定post請求參數,具體內容如下所示:
WEB開發中資訊基本上都是在POST與GET請求與回應中進行,GET因其基於URL的直觀,易被我們了解,可POST請求因其信息的隱蔽,在安全的同時,也給開發者們模擬發送帶來了麻煩。接下來的幾篇文章中,我將結合自己的筆記和理解,詳細解釋PHP進行POST請求的幾種方法,如有錯誤,煩請指正。
HTTP協定資訊是WEB開發中的重要內容,了解它可以幫助我們更深刻地理解BS交互,也有利於我們從更底層理解WEB開發。 HTTP協議是一種簡單靈活方便的通訊協議,並且要記住,它是一種無狀態的協議,即它是一種無記憶的協議,每一次的交互都是單獨的。
我們可以用瀏覽器的開發工具(IE的F12 火狐的FireBug等)的「網路」面板來查看HTTP頭資訊。
一般地HTTP頭資訊分為三類:請求訊息,回應訊息和互動訊息(個人認為也是請求訊息的一種)。
1,請求訊息:
在訪問一個網站時會由客戶端發出請求信息,此信息不帶有數據,只是單純地向伺服器接觸,促使伺服器回傳回應訊息。
其格式為兩部分:請求行和訊息標頭。
A.請求行: method(請求方法) path(請求站內位址) HTTP/version(協定/版本資訊)
常見的請求方法有GET/ POST/HEAD/OPTION等
B.訊息標頭:
Host(必須):主機和連接埠號,連接埠號碼預設為80
# Accept:期望接收內容類型(image/gif text/html */*)
Accept-Encoding:期望接收的壓縮類型(gzip deflat)
Accept-Charset:期望接收的字元集(utf-8)
Accept-Language(zh-CN)
Cookie:使用者的Cookie資訊
資訊 Connection:連線控制
# User-Agent:客戶端資訊 Connection:連線控制
# User-Agent:客戶端資訊
# ... ...
以下是一個典型的請求頭資訊:GET index.php HTTP/1.1
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:zh-CN,zh;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:SOHUHOMETAB=visit:2; IPLOC=CN1407; SUV=1510312046259910
Host:www.sohu.com
If-Modified-Since:Sat, 31 Oct 2015 12:45:22 GMT
Upgrade-Insecure-Requests:1
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36
伺服器回傳資料
回應訊息分為三個部分:狀態行訊息標頭回應正文
A.狀態列:HTTP/version(協定/版本資訊) 狀態碼 狀態文字(對狀態碼的文字描述)
狀態碼共有5類:
1XX:表示臨時回應,需要請求者繼續操作
# 2XX:表示成功,伺服器成功地回應了請求
3XX:表示重新導向,需要請求者進一步操作
4XX:表示客戶端錯誤,伺服器無法正常回應
5XX:表示伺服器無法正常回應 5XX:表示伺服器端錯誤,伺服器無法正常回應
具體資訊可參考:
HTTP狀態碼詳解
B.訊息標頭:
Server:伺服器資訊
# Content -Encoding:資料壓縮格式 Content-Length:資料長度
Content-Type:
資料型別# Cache-Control:快取控制
# Cache-Control:快取控制 Connection:連接控制 Date:日期信息 Expires:返回數據的過期信息 Last-Modified:返回最後的修改時間 Set-Cookie:設定客戶端的Cookie訊息... ...
C.回應正文 即傳回的頁面數據,在頁面以HTML文檔形式表現出來。 以下是常見的回應訊息HTTP/1.1 200 OKCache-Control:no-cache Connection:close Content-Encoding:gzip Content-Length:6947 Content-Type:text/html; charset=GBK Date:Sat, 31 Oct 2015 13:30:11 GMT Expires:-1 Pragma:no-cache Proxy-Connection:keep-alive Server:nginx/1.2.5 Set-Cookie:JSESSIONID=yiuug4yejhc1cdbzydoxlcpn;Path=/
3,互動訊息
# 是包含了請求資料的請求資訊常見於使用者上傳檔案註冊等 其分為三部分:請求行訊息標頭請求正文A.與請求資訊的請求行相同# B.在請求標頭的基礎上新增了有關請求正文的資料 Content-Type:上傳資訊的內容類型 Content-Length:上傳資訊的長度####### ... ...######C.請求正文:###### 即請求的具體資料字串(name=xxx&passwork=xxx),當然為了安全起見,有時會對POST資訊加密編碼。 ######以下是典型的請求訊息:###GET login.php HTTP/1.1 Host:passport.sohu.com Accept:text/html,application/xhtml+xml,application/xml Accept-Encoding:gzip, deflate Accept-Language:zh-CN,zh;q=0.8 Cache-Control:max-age=0 Connection:keep-alive Content-Length:166 Content-Type:application/x-www-form-urlencoded Referer:http://mail.sohu.com/ User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.99 Safari/537.36 Form Data domain=sohu.com&callback=passport20008375022711697966_cb1446298206568&appid=1113&userid=FDFFDF%40sohu.com&password=a3f4384c2bc44fa909ffd0ecc5fa8eb9&persistentcookie=0### 明白了瀏覽器都往伺服器上傳送了些什麼,那用其他方法偽裝成一個伺服器也就不是難事了。 ###
以上是php http協議post請求參數相關資料匯總的詳細內容。更多資訊請關注PHP中文網其他相關文章!