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:此博客是博主的学习记录过程,如有错误烦请大佬们纠正。

部分参考资料来源于其他博主

最新文章

  1. 手把手教你玩转nginx负载均衡(四)--源码安装nginx
  2. 微信小程序简介
  3. 怎样使用My97日期控件
  4. Win10切换中英输入法问题
  5. OA学习笔记-009-岗位管理的CRUD
  6. oracle 10g WMSYS.WM_CONCAT 函數的用法
  7. Animating Layout Changes(展开收起)
  8. hdu 4432 Sum of divisors(十进制转其他进制)
  9. WebHdfs
  10. 朗姆达表达式类似IN查询条件
  11. 写给后端的前端笔记:定位(position)
  12. 使用Hibernate Tools从数据库逆向生成Hibernate实体类
  13. Nginx http反向代理流程Proxy_pass模块
  14. BarTender怎样同时打印自动日期和流水号?
  15. python技巧 列表推导
  16. linux 用户配制文件 用户增加及删除 以及用户属于的更改
  17. sublime text syntaxdef
  18. CentOS7安装Nmon(linux性能监控工具)
  19. react-native 完整实现登录功能
  20. 用于sql代码实现用户的创建,以及不同用户之间登陆的切换

热门文章

  1. R语言factor类型转numeric
  2. ()C++中的赋值运算符重载函数(operator=)
  3. leetcode128-generate-parentheses
  4. 二维码生成与windows系统IP查询功能
  5. 内网渗透 day8-linux提权和后门植入
  6. nginx&http 第三章 ngx http ngx_http_process_request_line读取和处理HTTP头部的行
  7. 329. Longest Increasing Path in a Matrix(核心在于缓存遍历过程中的中间结果)
  8. 目录方式扩展swap分区大小
  9. 有关线上系统点击没有任何相应得问题思考,主要针对PC端应用程序
  10. mysql数据库安装与卸载以及Navicat安装