PHP中Http协议post请求参数
本文给大家介绍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:客户端信息
... ...
以下是一个典型的请求头信息:
GET 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:
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,响应信息
服务器返回数据
响应信息分为三部分:状态行 消息报头 响应正文
A.状态行:HTTP/version(协议/版本信息) 状态码 状态文本(对状态码的文本描述)
状态码共有5类:
1XX:表示临时响应,需要请求者继续操作
2XX:表示响应成功,服务器成功地响应了请求
3XX:表示重定向,需要请求者进一步操作
4XX:表示客户端错误,服务器无法正常响应
5XX:表示服务器端错误,服务器无法正常响应
具体信息可参考:HTTP状态码详解
B.消息报头:
Server:服务器信息
Content-Encoding:数据压缩格式
Content-Length:数据长度
Content-Type:数据类型
Cache-Control:缓存控制
Connection:连接控制
Date:日期信息
Expires:返回数据的过期信息
Last-Modified:返回最后的修改时间
Set-Cookie:设置客户端的Cookie信息
... ...
C.响应正文
即返回的页面数据,在页面以HTML文档形式表现出来。
以下是常见的响应消息
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,交互信息
是包含了请求数据的请求信息 常见于用户上传文件 注册等
其分为三部分:请求行 消息报头 请求正文
A.与请求信息的请求行相同
B.在请求报头的基础上添加了有关请求正文的数据
Content-Type:上传信息的内容类型
Content-Length:上传信息的长度
... ...
C.请求正文:
即请求的具体数据串(name=xxx&passwork=xxx),当然为了安全起见,有时会对POST信息加密编码。
以下是典型的请求消息:
GET HTTP/1.1
Host:
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:
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=&callback=passport20008375022711697966_cb1446298206568&appid=1113&userid=FDFFDF%&password=a3f4384c2bc44fa909ffd0ecc5fa8eb9&persistentcookie=0
明白了浏览器都往服务器上发送了些什么,那用其他方法伪装成一个服务器也就不是难事了。
下一节我会介绍PHP和JS处理最基本URL的方式,解决GET请求部分的同时,也将模拟发送POST请求的准备做足。
相關文章
-
php中php://input和$-POST有什么不同
php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 设置。下面是小编为大家带来的php中php://input和$_POST有什么不同的知识,欢迎阅读。 php中ph -
PHP中php://input和$-POST的区别
PHP是一门高效的网络编程语言,由于它具有编写灵活、运行快速等优点,迅速成为Web程序员的首选语言。以下是小编为大家搜索整理php中php://input和$_POST的区别,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业 -
PHP中使用cURL实现Get和Post请求
PHP中使用cURL实现Get和Post请求的方法,需要的朋友可以参考一下,就跟随本站小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网! 介绍cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多 -
PHP的GET和POST请求发送方法
在i94web博客中,我试过了畅言和多说两种社会化评论框,后来还是抛弃了畅言,不安全。无论是畅言还是多说,我都需要从远程抓取文章的.评论数,然后存入本地数据库。对于多说,请求的格式如下,就跟随小编去了解下吧,想了解更多相关 -
PHP中使用cURL实现Get和Post请求的方法
在PHP的应用中,一定搞清楚Get和Post请求两种方法是怎么应用的,以下是本站小编精心为大家整理的PHP中使用cURL实现Get和Post请求的方法,希望对大家使用cURL有所帮助!更多内容请关注应届毕业生网! 介绍cURL 是一个利用U -
PHP如何用curl发送GET和POST请求
导语:PHP如何使用curl发送GET和POST请求,具体详情请阅读下面代码,更多详情请关注考试网。 使用CURL发送请求的基本流程使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:1.初始化连接句柄;2.设置CURL选项;3. -
PHP如何使用curl发送GET和POST请求
导语:PHP如何使用curl发送GET和POST请求,具体详情请阅读下面代码,更多详情请关注应届毕业生考试网。 使用CURL发送请求的基本流程使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤:1.初始化连接句柄;2.设置C -
php中curl模拟post请求小实例
使用php curl模拟post请求的小例子,提供大家学习一下,就跟随本站小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕业生考试网!本机:复制代码 代码如下:<?php$uri = "";//这里换成你服务器的地址// 参数数组$d -
php采用ajax数据提交post与post常见方法总结
在很多情况下我们使用ajax是不会有什么问题的,但有时会碰到ajax数据提交post不完整的问题,以下是小编为大家搜索整理的php采用ajax数据提交post与post常见方法总结, 希望能给大家带来帮助!更多精彩内容请及时关注我们应 -
PHP中strtotime函数使用方法
一,获取指定日期的unix时间戳strtotime("2009-1-22") 示例如下: strtotime("2009-1-22")结果:1232553600说明:返回2009年1月22日0点0分0秒时间戳二,获取英文文本日期时间示例如下:便于比较,使用date将当时间戳与指定时间戳转