PHP中Http协议post请求参数


Posted in PHP onNovember 02, 2015

本文给大家介绍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  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,响应信息

服务器返回数据

响应信息分为三部分:状态行 消息报头 响应正文

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  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和JS处理最基本URL的方式,解决GET请求部分的同时,也将模拟发送POST请求的准备做足。

如果您觉得本博文对您有帮助,您可以推荐或点赞,如果您有什么问题,也可以在下方留言,一块讨论,谢谢。

PHP 相关文章推荐
一棵php的类树(支持无限分类)
Oct 09 PHP
如何在PHP中使用Oracle数据库(5)
Oct 09 PHP
实时抓取YAHOO股票报价的代码
Oct 09 PHP
php中的登陆login
Jan 18 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
Sep 22 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
Sep 25 PHP
PHP中Http协议post请求参数
Nov 02 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
May 02 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
Aug 30 PHP
php获取手机端的号码以及ip地址实例代码
Sep 12 PHP
浅谈PHP中foreach/in_array的使用
Nov 02 #PHP
php防止用户重复提交表单
Nov 02 #PHP
windows8.1下Apache+Php+MySQL配置步骤
Oct 30 #PHP
php验证邮箱和ip地址最简单方法汇总
Oct 30 #PHP
php三种实现多线程类似的方法
Oct 30 #PHP
php搜索文件程序分享
Oct 30 #PHP
纯php生成随机密码
Oct 30 #PHP
You might like
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
php学习之 循环结构实现代码
2011/06/09 PHP
php网站判断用户是否是手机访问的方法
2013/11/01 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
js中更短的 Array 类型转换
2011/10/30 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
2012/10/11 Javascript
jquery 提示信息显示后自动消失的具体实现
2013/12/18 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
超实用的javascript时间处理总结
2016/08/16 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
js实现随机数字字母验证码
2017/06/19 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
2020/07/18 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
在vue中动态修改css其中一个属性值操作
2020/12/07 Vue.js
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
[04:20]DOTA2-DPC中国联赛 正赛 VG vs LBZS 选手采访 1月19日
2021/03/11 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
轻松实现python搭建微信公众平台
2016/02/16 Python
Python实现的多线程http压力测试代码
2017/02/08 Python
TensorFlow平台下Python实现神经网络
2018/03/10 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
房屋出租协议书范本(标准版)
2014/09/24 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
2015年暑假工作总结
2015/07/13 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
DE1103使用报告
2022/04/05 无线电