HTTP请求:客户端同通过发送http请求向服务器请求资源的访问。http请求由三部分组成:请求行、请求头、请求正文
请求行包括:请求方法 URI 协议/版本
请求头:Content-type、Cookie、Authorization、User-Agent、Accept、Accept-Encoding
请求空行 标志着请求头结束,请求正文(请求体)的
请求体:参数:表单;消息体数据:json、xml
举例:
POST /index.html HTTP/1.1 请求方法 url 协议/版本号
Host: localhost 主机地址
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a>
Content-Length:25
Content-Type:application/x-www-form-urlencoded
请求空行 标志着请求头结束,请求正文(请求体)的开始
username=aa&password=1234
注意:
1,jmeter内容编码处理出现乱码的方法:
方法1,内容编码:utf8
方法2,请求头:charset=utf-8
方法3,请求体为”参数“类型,需要勾选参数”编码“
响应内容出现乱码处理方法:
1,需要修改jmeter.properties中的sampler.result.encoding,如utf8、gbk、gb2312、big5等,具体需要根据操作系统调整适配。因为jmeter的编码是根据操作系统编码。在国内,中文的windows系统的字符集编码是gbk 936,mac系统中文字符集编码是utf8.
2,当请求体为json时,请求头一定要有Content-Type:application/json
3,Connection: keep-alive 持久连接
当一个网页打开完成后,客户端和服务器之间用于传输http数据的tcp连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一个已经建立的连接。
Connection: close
代表一个Request完成后,客户端和服务器之间用于传输http数据的tcp连接会关闭,当客户端再次发送请求,需要重新建立tcp连接。
4,Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 浏览器可以接受的媒体类型
Accept: text/html 代表浏览器可以接受服务器回发的类型为 text/html 也就是我们常说的html文档, 如果服务器无法返回text/html类型的数据,服务器应该返回一个406错误(non acceptable)。
通配符 * 代表任意类型。例如 Accept: / 代表浏览器可以处理所有类型,(一般浏览器发给服务器都是发这个)
5,Accept-Encoding: gzip,deflate 浏览器接收的编码方法
Accept-Encoding: gzip,deflate。server能够向支持gzip/deflate的浏览器返回gzip或者deflate编码的html页面。许多情况下,可以减少5-10倍的下载时间,也节省带宽。
6,Accept-Language: zh-cn,zh;q=0.5 浏览器申明自己接收的语言
语言跟字符集的区别:中文是语言,中文有多种字符集,比如big5,gb2312,gbk等等;
7,User-Agent:告知http服务器,客户端使用的操作系统和浏览器的名称和版本
我们上网登陆论坛的时候,往往会看到一些欢迎信息,其中列出了你的操作系统的名称和版本,你所使用的浏览器的名称和版本,这往往让很多人感到很神奇,实际上, 服务器应用程序就是从User-Agent这个请求报头域中获取到这些信息User-Agent请求报头域允许客户端将它的操作系统、浏览器和其它属性告诉服务器。
8,Content-Type:消息体格式
9,Referer: http://localhost/
提供了Request的上下文信息的服务器,告诉服务器是从哪个链接过来的,比如从主页上链接到一个朋友那里, 服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问 他的网站。
jmeter的http代理
添加:测试计划 > 非测试元件 > http代理服务器
1, ip就是你自己电脑的ip,端口默认8888,port可以修改。
2,目标控制器,一定要修改 修改为 测试计划>线程组, Requests Filtering添加过滤器,在排除模式中点击添加再复制该段信息.*\.(js|css|png|jpg|ico|png|gif).*
这样能过滤掉一些无用的加载文件
3,启动代理服务器时,会出现一个证书的弹窗, 如果要抓取https信息时,就必须使用证书
4,本地浏览器使用 代理服务器上网即可实现jmeter抓包