PHP中Http協(xié)議post請求參數(shù)
本文給大家介紹PHP中Http協(xié)議post請求參數(shù),具體內(nèi)容如下所示:
WEB開發(fā)中信息基本全是在POST與GET請求與響應(yīng)中進(jìn)行,GET因其基于URL的直觀,易被我們了解,可POST請求因其信息的隱蔽,在安全的同時,也給開發(fā)者們模擬發(fā)送帶來了麻煩。接下來的幾篇博文中,我將結(jié)合自己的筆記和理解,詳細(xì)解釋PHP進(jìn)行POST請求的幾種方法,如有錯誤,煩請指正。
HTTP協(xié)議信息是WEB開發(fā)中的一項重要內(nèi)容,了解它可以幫助我們更深刻地理解BS交互,也有利于我們從更底層理解WEB開發(fā)。HTTP協(xié)議是一種簡單靈活方便的通訊協(xié)議,并且要記住,它是一種無狀態(tài)的協(xié)議,即它是一種無記憶的協(xié)議,每一次的交互都是單獨的。
我們可以用瀏覽器的開發(fā)工具(IE的F12 火狐的FireBug等)的“網(wǎng)絡(luò)”面板來查看HTTP頭信息。
一般地HTTP頭信息分為三類:請求信息,響應(yīng)信息和交互信息(個人認(rèn)為也是請求信息的一種)。
1,請求信息:
在訪問一個網(wǎng)站時會由客戶端發(fā)出請求信息,此信息不帶有數(shù)據(jù),只是單純地向服務(wù)器接觸,促使服務(wù)器返回響應(yīng)信息。
其格式為兩部分:請求行和消息報頭。
A.請求行: method(請求方法) path(請求站內(nèi)地址) HTTP/version(協(xié)議/版本信息)
常見的請求方法有GET/POST/HEAD/OPTION等
B.消息報頭:
Host(必須):主機和端口號,端口號默認(rèn)為80
Accept:期望接收內(nèi)容類型(image/gif text/html */*)
Accept-Encoding:期望接收的壓縮類型(gzip deflat)
Accept-Charset:期望接收的字符集(utf-8)
Accept-Language(zh-CN)
Cookie:用戶的Cookie信息
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
2,響應(yīng)信息
服務(wù)器返回數(shù)據(jù)
響應(yīng)信息分為三部分:狀態(tài)行 消息報頭 響應(yīng)正文
A.狀態(tài)行:HTTP/version(協(xié)議/版本信息) 狀態(tài)碼 狀態(tài)文本(對狀態(tài)碼的文本描述)
狀態(tài)碼共有5類:
1XX:表示臨時響應(yīng),需要請求者繼續(xù)操作
2XX:表示響應(yīng)成功,服務(wù)器成功地響應(yīng)了請求
3XX:表示重定向,需要請求者進(jìn)一步操作
4XX:表示客戶端錯誤,服務(wù)器無法正常響應(yīng)
5XX:表示服務(wù)器端錯誤,服務(wù)器無法正常響應(yīng)
具體信息可參考:HTTP狀態(tài)碼詳解
B.消息報頭:
Server:服務(wù)器信息
Content-Encoding:數(shù)據(jù)壓縮格式
Content-Length:數(shù)據(jù)長度
Content-Type:數(shù)據(jù)類型
Cache-Control:緩存控制
Connection:連接控制
Date:日期信息
Expires:返回數(shù)據(jù)的過期信息
Last-Modified:返回最后的修改時間
Set-Cookie:設(shè)置客戶端的Cookie信息
... ...
C.響應(yīng)正文
即返回的頁面數(shù)據(jù),在頁面以HTML文檔形式表現(xiàn)出來。
以下是常見的響應(yīng)消息
HTTP/1.1 200 OK
Cache-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,交互信息
是包含了請求數(shù)據(jù)的請求信息 常見于用戶上傳文件 注冊等
其分為三部分:請求行 消息報頭 請求正文
A.與請求信息的請求行相同
B.在請求報頭的基礎(chǔ)上添加了有關(guān)請求正文的數(shù)據(jù)
Content-Type:上傳信息的內(nèi)容類型
Content-Length:上傳信息的長度
... ...
C.請求正文:
即請求的具體數(shù)據(jù)串(name=xxx&passwork=xxx),當(dāng)然為了安全起見,有時會對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
明白了瀏覽器都往服務(wù)器上發(fā)送了些什么,那用其他方法偽裝成一個服務(wù)器也就不是難事了。
下一節(jié)我會介紹PHP和JS處理最基本URL的方式,解決GET請求部分的同時,也將模擬發(fā)送POST請求的準(zhǔn)備做足。
如果您覺得本博文對您有幫助,您可以推薦或點贊,如果您有什么問題,也可以在下方留言,一塊討論,謝謝。
- PHP中$GLOBALS[''HTTP_RAW_POST_DATA'']和$_POST的區(qū)別分析
- php 利用socket發(fā)送HTTP請求(GET,POST)
- 使用PHP Socket 編程模擬Http post和get請求
- php中運用http調(diào)用的GET和POST方法示例
- PHP實現(xiàn)支持GET,POST,Multipart/form-data的HTTP請求類
- php中用socket模擬http中post或者get提交數(shù)據(jù)的示例代碼
- php獲取通過http協(xié)議post提交過來xml數(shù)據(jù)及解析xml
- PHP使用Http Post請求發(fā)送Json對象數(shù)據(jù)代碼解析
相關(guān)文章
php和數(shù)據(jù)庫結(jié)合的一個簡單的web實例 代碼分析 (php初學(xué)者)
這是一個基本的教程。沒有怪異的代碼,只是一些基礎(chǔ)?,F(xiàn)在有大量的教程是基于UNIX機器的,這個教程將集中在基于Windows平臺上。2011-07-07Laravel框架實現(xiàn)利用監(jiān)聽器進(jìn)行sql語句記錄功能
這篇文章主要介紹了Laravel框架實現(xiàn)利用監(jiān)聽器進(jìn)行sql語句記錄功能,結(jié)合實例形式分析了Laravel框架監(jiān)聽器的創(chuàng)建、引入以及使用監(jiān)聽器記錄sql語句的相關(guān)操作技巧,需要的朋友可以參考下2018-06-06tp5.1 框架數(shù)據(jù)庫-數(shù)據(jù)集操作實例分析
這篇文章主要介紹了tp5.1 框架數(shù)據(jù)庫-數(shù)據(jù)集操作,結(jié)合實例形式分析了tp5.1 框架數(shù)據(jù)庫查詢結(jié)果數(shù)據(jù)集獲取、遍歷相關(guān)操作技巧與使用注意事項,需要的朋友可以參考下2020-05-05