Http
协议
- 双方交互通讯时遵循的规则
HTTP协议
- 针对客户端与服务端进行http请求时遵循的规范,请求时要带上什么东西,返回数据时又要带上什么东西
- 1.0版本,请求数据,服务器返回后,会断开连接
- 1.1版本,请求数据,服务器返回后,还会保持连接,除非服务器/客户端关闭,一定时间后会关闭。
使用HTTPwatch抓包
- 运行tomcat访问首页
- Execute
- 点击ie右上角的小箭头运行HTTPwatch
- 点红按钮提交数据
- 点击带颜色的条
- 点击虾米那的Stream就可以抓到请求的数据了
请求数据
- 请求行:
– post(get/…)
– 请求的地址路径
– http/协议版本 - 请求头:
– Accept(客户端向服务器提示我能支持什么类型的数据)
– Referer:真正请求的地址路径,全路径
– Accept-Language:支持语言格式
– User-Agent:用户代理 向服务器表明,当前来访的客户端信息(根据这个判别pc/android)
– Content-Type:提交的数据类型,经过url encoding编码的form表单的数据
– Accept-Encoding:gzip,deflate:压缩算法
– Host:主机地址
– Content-Length:数据长度
– Connection:keep-Alive 保持连接
– Cache-Control:对缓存的操作 - 请求体
– 浏览器真正发给服务器的数据
– 以key-value多个数据间用&分隔
Http响应数据解析
- 响应行:
– http/协议版本
– 状态码(交互结果 200:成功 | 403:拒接访问 | 404:找不到 | 500:服务器异常)
– 状态码的对应信息 - 响应头:
– Server:服务器类型
– Content-Type:服务器返回给客户端的数据类型
– Content-Length:数据长度
– Date:响应日期
Get/Post
- 区别
– get请求信息拼到地址后,地址?信息
– 带上的数据不同,post用流的方式写数据,get在地址栏上跟数据
– post由于请求流的方式写数据,所以会有Content-Length表明数据长度 - get:
– 不安全,暴露信息,有安全隐患,从服务端获取数据,客户端不用提交数据用这种方法
– 带的数据有限,1kb大小限制 - post:
– 流方式,不会出现在地址栏,一般提交数据到服务端都用这种方式
– 没有大小限制