【前后端】HTTP网络传输协议

近期更新完毕,建议关注、收藏!

http请求

  • URL 严格意义上应该是URI
  • http or https
    http不加密不安全;https加密协议(公网使用)
    http端口号80 https端口号443
  • GET or POST
    GET和POST是HTTP请求的两种基本方法.
    因为POST需要两步,时间上消耗的要多一点,看起来GET比POST更有效。但是:
    1.GET与POST都有自己的语义,不能随便混用。
    2.据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。
    3.并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
GET POST
GET把参数包含在URL中 POST通过request body传递参数,抓包才能看到
GET在浏览器回退时是无害的 POST会再次提交请求
GET请求会被浏览器主动cache POST不会,除非手动设置
GET产生的URL地址可以被Bookmark POST不可以
GET请求只能进行url编码 POST支持多种编码方式
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET请求参数会被完整保留在浏览器历史记录里 POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制 没有
对参数的数据类型,GET只接受ASCII字符 没有限制
GET产生一个TCP数据;对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据); POST产生两个TCP数据包;对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url,超过的部分,恕不处理。

  • 请求

    请求头:描述客户端的属性信息
  • 响应
    响应行:协议/协议版本号 响应状态码 状态描述
    响应头:服务器的属性信息
    响应体:服务器返回结果
  • 响应状态码
    2xx成功
    3xx重定向
    4xx客户端错误
    5xx服务器错误
  • HTTP请求方法有GET, POST, PUT, DELETE等等
    GET: Retrieve data from the server.
    POST: Send data to the server to create a new resource.
    PUT or PATCH: Update an existing resource on the server.
    DELETE: Remove a resource on the server.
  • 底层实现
    HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP

抓包工具

  1. 用浏览器中的f12检查元素也可以抓包,只是不能设置断点。
    no throttling设置弱网
  2. fiddler是一个http协议调试代理工具,能够记录并检查经过这台电脑的所有http通讯。

    fiddler就是一个代理服务器放在电脑和服务器之间,可以进行拦截。
  • 应用场景
    定位前后端bug
    弱网测试(网络差的时候测试有没有问题)
    绕过界面限制直接测试服务器
  • 使用方法
    • 过滤器
      filters->use filters
      show only following hosts 输入hosts 域名或Ip地址都行
      actions->run filterset now
    • 删除所有数据

      下方终端输入cls
    • 查看数据
    • 弱网测试


      这里就是每上传/下载1kb的所需时间(延迟时间),可以自行设置,分别是上行和下行,单位ms


      下图表示开启了延迟
    • 设置断点

      before requests: 请求走到代理服务器fiddler时就会被拦截下来,不会发给服务器。

      点击run to completion 就会取消掉拦截。
      拦截下来可以改请求、响应的内容
  • 设置弱网可能出现的异常
    上传文件时进度卡住不动
    登陆不上货登陆后掉线
    响应过程中页面控件可点击,导致崩溃
    搜索不响应,多次点击后结果显示总在刷新被替换

怎么解决?先点击这个黄色部分,再改数据

  • 防篡改 这个是一个很重要的安全问题。可以用这个看能不能改
相关推荐
加农炮手Jinx7 小时前
Flutter for OpenHarmony 实战:JWT — 构建安全的无状态认证中心
网络·flutter·华为·harmonyos·鸿蒙
iambooo8 小时前
Shell在日志分析与故障排查中的实战应用
linux·服务器·网络
_麦麦_8 小时前
《九章云络书·织网布阵玄机》上篇
网络·智能路由器
雷帝木木8 小时前
Flutter for OpenHarmony:Flutter 三方库 money2 — 坚不可摧的鸿蒙金融核心组件
网络·flutter·http·华为·金融·harmonyos·鸿蒙
余瑜鱼鱼鱼9 小时前
数据链路层相关知识总结
网络
打码人的日常分享11 小时前
数据中心信息中心信息科管理制度
大数据·运维·网络·云计算·制造
一路往蓝-Anbo13 小时前
第 12 章:Linux 侧 RPMsg 用户态驱动与数据接口
linux·运维·服务器·stm32·单片机·嵌入式硬件·网络协议
却尘13 小时前
一个 ERR_SSL_PROTOCOL_ERROR 让我们排查了三层问题,最后发现根本不是 SSL 的锅
前端·后端·网络协议
宁雨桥14 小时前
详解Web服务部署:IP+端口 vs IP+端口+目录 实战指南
前端·网络协议·tcp/ip
mftang14 小时前
WebSocket协议与其他通信协议有什么区别?
网络·websocket·网络协议