本文共 2528 字,大约阅读时间需要 8 分钟。
前面把HTTP 消息和HTTP请求和HTTP响应理论的知识点都学完了,很多概念记不住没关系,我们在实战里面会复习前面学习过的知识点,然后结合实战中的图片来加深对前面知识点的巩固。在实战之前,我们需要搭建一套本地环境,这套环境其实重点是后面cookies和session的学习会用到。还需要安装一个抓包工具,这里就采用fiddler这个免费的工具。
1.本地搭建XAMPP+Phpwind环境
XAMPP是Apache一个开源软件,里面集成了apache server和mysql,也有tomcat服务器,这些软件的集成,都是采用默认配置,例如mysql端口3306,如果你本机安装过mysql,务必先卸载干净。不要学我,一开始折腾给XAMPP换一个mysql端口,当然最后还是折腾出来,但是踩了很多坑,浪费了时间。
下载XAMPP 5.6.39版本,注意不要用最新版本,后面Phpwind会不兼容,打开出现空白页。
下载地址:
下载后直接exe文件安装,默认安装到C:\xampp
Phpwind下载和安装
这是php写的一个论坛系统,国产系统,杭州一家公司开发,后来被淘宝给收购,现在阿里把最新phpwind的版本放在了github,所以千万不要去百度搜phpwind下载,直接和我一样去github下载。
下载地址:
下载zip到本地,解压,然后把整个upload文件夹复制到 C:\xampp\htdocs 我这边把upload文件夹改一个名称,例如phpwind,然后再XAMPP上重启mysql和appache服务。只需要启动上面两个服务,其他不用管,用不到。然后浏览器打开
回车会自动跳转到
安装提示,默认安装就是,提醒以下,这套环境mysql安装完 用户是root,密码是空,不需要填写密码,phpwind的管理员我们给admin用户设置密码为123456,这个后面登录需要用到。
安装完,如果跳转phpwind登录页面,可以登录成功,说明我们的环境准备好了。
2.Get请求实战例子
先来一个get的请求,phpwind系统登录就是一个get请求,打开fiddler,浏览器操作打开http://localhost/phpwind 点击登录按钮,输入用户名和密码,勾选记住登录,点击提交。整个过程fiddler都会纪录下来
就来看点击 /phpwind 没登录之前这个url的访问请求(上图背景颜色是蓝色这条数据)。
从上图,我们可以看到这些请求消息。
1.请求起始行
我红圈第一行“Get /phpwind/ HTTP/1.1” 这个就是我们前面说的起始行,这里是请求消息的起始行。这个起始行,说明了请求方法是GET,请求URI是 /phpwind 协议版本是HTTP/1.1,后面就是换行结束了。
2.请求头字段
看上图第二个红圈,可以看到以下头字段。
Accept:
告诉服务器,客户端能接收以下媒体类型 text/html(网页),xml文件,xhtml文件,png图片Accept-Encoding:
告诉服务器,客户端支持编码格式有 gzip 和deflate,brAccept-Language:
告诉服务器,客户端支持语言,英文(美国) 英文 和中文(简体)User-Agent: 告诉服务器,客户端是通过什么来发送请求的,这里Mozilla这个是固定写法,可以看到windows NT 10,我系统是win10, 我用chrome浏览器发送的请求,后面那个safari不用管。其实,你也可以点击raw tab查看这些头字段。
这张图就多出了一个头字段,Host, cookies我们暂时没学习到,不去管。注意到上面这个图下面区域的空白没,其实这块就是请求的正文,一般请求都是没有正文的,所以这块地方是空白。
以上就是一个Get请求的分析全部过程,主要复习了请求中的请求起始行和请求头字段这部分知识点,这些出现的字段都一一解释什么用途。如果这里不理解什么是请求起始行和请求头字段,请回到前面请求理论这篇文章去复习相关概念。
3.POST请求实战例子
继续用phpwind这个应用来找一个POST的请求,前面理论知识说了,GET请求就是从服务器上获取数据,POST请求就是往服务器里提交数据。所以我们得在phpwind这个上找一个创建内容的操作,这应该是POST请求。
我找到了这个操作:
1)登录phpwind应用
2)在admin这个用户名旁边点击倒三角,点击系统后台,会新tab打开系统后台登录
3)用admin/123456登录系统后台
4) 后台登录后,点击 页头菜单点击 论坛,展开页面点击 板块管理
5)点击 添加新板块,输入 一个板块名称,点击提交按钮。(下图)
6)回到fiddler上来看数据。
我在上面这几个请求链接中,找到一个POST请求(深蓝色的这条数据),下面来看看这个POST请求消息中的请求起始行和请求头字段内容。
得到以下内容
1.请求起始行是: POST /phpwind/admin.php?m=bbs&c=setforum&a=dorun HTTP/1.1
请求方法是POST,URI也给出了,虽然具体参数和值看不是很明白。
2.来解释几个新出现的头字段含义
X-Requested-With: XMLHttpRequest
这个XMLHttpRequest对象表示是一个异步请求,了解过Ajax的就知道。不知道,没关系,不影响我们学习HTTP协议。
Content-Length:264
就是内容长度,我们知道有些服务器是对请求内容长度大小有限制的。Refer:
这是一个应用和下面的Origin起始来源不一样。
接下来看看POST请求的正文部分,如果是POST请求,一般参数都是放在正文中,GET请求正文是空白的,POST请求是有正文的。
上面红圈是转码过的内容,有些看不大懂,我们可以切换到下图去看得懂这些参数。切换到webForms,表单提交方式去看。
这个接口自动化测试就是,我在后台配置的板块的名称。
关于HTTP请求的实战就到这里,下一篇做HTTP响应的实战。
转载地址:http://djows.baihongyu.com/