HTTP协议数据包
简介:由w3c制定的一种网络应用层协议,定义了浏览器与web服务器之间通信时所使用的数据格式。
0x00 数据包格式
1、请求行:请求类型/请求资源路径、协议的版本和类型
2、请求头:一些键值对,一般有w3c定义,浏览器与web服务器之间都可以发送,表示特定的某种含义
3、空行:请求头与请求体之间用一个空行隔开
4、请求体:要发送的数据(一般post方式会使用)如:UserName=123&PAssWord=123
0x01 请求头介绍
Hsot:表示请求的服务器域名/ip地址+端口
User-Agent:表示用户本地系统浏览器环境
Accept:表示浏览器可解析的应用环境
Accept-Language:表示浏览器可解析的语言类型
Accept-Encoding:表示浏览器可解析的编码方式
Referer:表示请求页面是从哪里来的
Cookie:表示服务器和浏览器之间的会话转台,该状态可以表示用户是否登陆过,一般都是服务器给配置的,具有时效性,只要失效就需要用户重新登录,会得到一个新的Cookie值,只要登录成功之后,浏览器就会保存cookie,妹子去服务器请求都会带上cookie,并且该cookie是需要在服务器中验证的
X-forwarded-for:表示用户真实ip
content-type:表示该请求数据的类型
0x02 响应包response
用户发送的请求包到达服务器,服务器处理该请求,处理之后返回发送给用户浏览器,讲该结果成为响应包。
响应包=状态行+响应报头+空行+响应正文(响应内容)
响应报头参数含义:
data:响应时间
server:服务器环境
content-length:响应数据包长度
connection:连接状态
content-type:返回响应数据类型,告诉浏览器该使用哪种方式去解析或打开盖响应数据的内容
location:表示要跳转到的页面
set-cookie:表示服务器给浏览器设置的cookie值
0x03 状态码的分类,由3位数字组成:
1xx 表示服务器已接收到请求,并需要继续处理
2xx 表示服务器已成功接收到请求,并处理了请求
3xx 表示重定向,url要跳转到其他页面去请求
4xx 表示用户请求客户端有问题
5xx表示服务器端内部错误
常见状态码:
200 表示请求已成功,请求所希望的响应头或数据将响应返回
203 表示服务器已成功处理了请求,但返回的试题头部元信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝
302 表示请求的资源现在临时从不同的url响应请求,由于这一的重定向是临时的,客户端应继续向原有地址发送以后的请求
304 表示如果客户端发送了一个带条件的get请求且请求已被允许,而文档的内容并没有改变
400 表示语义有误,当前请求无法被服务器理解,或者请求的参数有误
401 表示当前请求需要用户验证,该响应必须包含一个适用于被请求资源的信息头用以询问用户信息
403 表示服务器已经理解请求,但是被拒绝执行,与401不同的事,身份验证并不能提供任何帮助,而这个请求也不应该呗重复提交
404 请求失败,请求所希望得到的资源未被在服务器上发现
500 服务器遇到一个未曾预料的状况,导致了它无法完成对请求的处理,一般是服务器的程序码出错时出现
PS:此博客是博主的学习记录过程,如有错误烦请大佬们纠正。
部分参考资料来源于其他博主