当前位置: 首页 > news >正文

【前后端】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就只发送一次。
GETPOST
GET把参数包含在URL中POST通过request body传递参数,抓包才能看到
GET在浏览器回退时是无害的POST会再次提交请求
GET请求会被浏览器主动cachePOST不会,除非手动设置
GET产生的URL地址可以被BookmarkPOST不可以
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
  • 查看时间花费
    在这里插入图片描述
    overall elapsed指页面打开的时间 页面响应时间

抓包工具

  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 就会取消掉拦截。
      拦截下来可以改请求、响应的内容
      在这里插入图片描述
  • 设置弱网可能出现的异常
    上传文件时进度卡住不动
    登陆不上货登陆后掉线
    响应过程中页面控件可点击,导致崩溃
    搜索不响应,多次点击后结果显示总在刷新被替换

怎么解决?先点击这个黄色部分,再改数据在这里插入图片描述

  • 防篡改 这个是一个很重要的安全问题。可以用这个看能不能改

相关文章:

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

近期更新完毕,建议关注、收藏! http请求 URL 严格意义上应该是URI http or https http不加密不安全;https加密协议(公网使用) http端口号80 https端口号443GET or POST GET和POST是HTTP请求的两种基本方法. 因为POST需…...

Fastdfs V6.12.1集群部署(arm/x86均可用)

文章目录 一、 Fastdfs 介绍二、部署 信息三、步骤tracker/storage 机器的 compose 内容storage 机器的 composetracker 与 storage 启动目录层级与配置文件测试测试集群扩容与缩减注意事项 一、 Fastdfs 介绍 FastDFS 是一款高性能的分布式文件系统,特别适合用于存…...

【LeetCode每日一题】——434.字符串中的单词数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【时空频度】八【代码实现】九【提交结果】 一【题目类别】 字符串 二【题目难度】 简单 三【题目编号】 434.字符串中的单词数 四【题目描述】 统计字符串中的单词个…...

windows C#-使用构造函数

实例化类或结构时,将会调用其构造函数。 构造函数与该类或结构具有相同名称,并且通常初始化新对象的数据成员。 在下面的示例中,通过使用简单构造函数定义了一个名为 Taxi 的类。 然后使用 new 运算符对该类进行实例化。 在为新对象分配内存…...

[react]redux异步处理和重写useDispatch

异步代码 import { createAsyncThunk, createSlice } from reduxjs/toolkit; import { getBanner } from ../http/request; import store from /store; export const fetchBanner createAsyncThunk(recommend/banners,async (args, thunkAPI) > {const response await ge…...

基础数据结构---栈

顺序表实现 一、栈类的声明 栈是一种特殊的线性表&#xff0c;可以由顺序表来实现&#xff0c;也可以由链表来实现&#xff0c;这节课&#xff0c;我们采用顺序表来实现栈。 #include <iostream>#include <stdexcept>using namespace std;template<typename …...

【HarmonyOS之旅】DevEco Studio的安装与环境配置

目录 1 -> 下载与安装DevEco Studio 1.1 -> 运行环境要求 1.2 -> 下载和安装DevEco Studio 2 -> 配置环境变量 3 -> 配置开发环境 4 -> 开发项目准备 5 -> 实用小技巧 5.1 -> 中文插件 2 -> 简化工程目录栏 1 -> 下载与安装DevEco Stud…...

Liveweb视频融合共享平台在果园农场等项目中的视频监控系统搭建方案

一、背景介绍 在我国的大江南北遍布着各种各样的果园&#xff0c;针对这些地处偏僻的果园及农场等环境&#xff0c;较为传统的安全防范方式是建立围墙&#xff0c;但是仅靠围墙仍然无法阻挡不法分子的有意入侵和破坏&#xff0c;因此为了及时发现和处理一些难以察觉的问题&…...

Android4.4 在系统中添加自己的System Service

添加系统service时&#xff0c;源码限制只能添加以android开头的包名&#xff0c;如果不是android开头的&#xff0c;编译时会提示找不到对应的文件。 比如说在系统中添加一个包名为&#xff1a;tel.gateway.connservice的系统服务。 1.在framework/base目录下面创建如下路径&a…...

【C++】C++实现字符串大小写转换功能

在C中&#xff0c;实现字符串大小写转换可以通过标准库中的函数来完成。以下是两种常见的方法&#xff1a; 使用标准库函数std::transform std::transform是一个泛型算法&#xff0c;可以用来对序列中的每个元素应用一个给定的函数&#xff0c;并把结果存储到另一个序列中。这…...

【蓝桥杯】43696.小数第n位

小数第n位 题目描述 我们知道&#xff0c;整数做除法时&#xff0c;有时得到有限小数&#xff0c;有时得到无限循环小数。如果我们把有限小数的末尾加上无限多个0&#xff0c;那么有限小数和无限小数就都有了统一的形式。 本题的任务是:在上面的约定下&#xff0c;求整数除法…...

进程间通信方式---消息队列(System V IPC)

进程间通信方式—消息队列&#xff08;System V IPC&#xff09; 文章目录 进程间通信方式---消息队列&#xff08;System V IPC&#xff09;消息队列1.消息队列进程间通信原理2.msgget 系统调用3.msgsnd 系统调用4.msgrcv 系统调用5.msgctl 系统调用6.函数使用案例7.实现生产者…...

windows10 安装wsl、迁移到其他盘

介绍一下在windows10 安装和迁移wsl。由于公司发了通知不能在使用docker desktop&#xff0c;只能另找方法使用docker了&#xff0c;于是想安装一个wsl&#xff0c;然后在装一个docker。 安装wsl ## 查看wsl 版本 wsl.exe --list --online## 安装Ubuntu-22.04 wsl.exe --inst…...

el-divide(vue3总)

分割线 使用...

python —— 常用命令行的命令

目 录 python命令行查看安装版本查看安装路径升级pip工具安装包升级包卸载安装包查看包的信息详情查询已安装的包查询可升级的包显示包所在目录及信息搜索包使用指定版本运行脚本运行常见错误 python命令行 产品研发中通常需要使用一些小工具来辅助调试功能&#xff0c;比如采…...

C++ 23版的最新特性

C 23 是 C 编程语言的最新标准版本&#xff0c;于 2023 年正式发布&#xff0c;带来了诸多新特性与改进&#xff0c;以下是一些主要内容&#xff1a; 1.语言特性 1.显式对象参数&#xff08;Deducing this&#xff09;&#xff1a;显式对象参数&#xff08;Deducing this&…...

什么是 Memory-bound stalls,以及如何优化

Memory-bound stalls 是指在计算机系统中&#xff0c;程序的性能受到内存访问速度的限制&#xff0c;导致处理器无法高效执行指令。这种情况通常发生在 CPU 需要等待数据从内存中加载时&#xff0c;而不是在执行计算或处理指令时。 Memory-bound stalls 的成因 访问延迟&…...

机器学习 | 非线性回归拟合数据时的离群值检测

非线性回归是一种用于模拟变量之间复杂关系的强大工具。然而&#xff0c;离群值的存在可能会显着扭曲结果&#xff0c;导致参数估计不准确和预测不可靠。因此&#xff0c;检测离群值对于稳健的非线性回归分析至关重要。本文深入研究了在非线性回归中识别离群值的方法和技术&…...

使用elasticsearch-head插件修改elasticsearch数据

1、先使用elasticsearch-head插件基本查询功能找到要修改的数据 2、切换到复合查询界面 url&#xff1a; http://es的ip地址:端口号/索引名称/文档类型&#xff08;没特殊设置过就是_doc&#xff09;/文档id/ 例子&#xff1a;http://127.0.0.1:9200/tab_inout_record/_doc/84…...

202412月最新植物大战僵尸杂交版【V3.0.1】更新内容与下载

以下是对UI优化和新内容添加的摘要&#xff1a; UI优化摘要&#xff1a; 主界面重做&#xff1a;对游戏的主界面进行全面的设计更新&#xff0c;提升用户体验。商店重做&#xff1a;对游戏内的商店界面进行重新设计&#xff0c;以改善玩家的购物体验。选卡界面增加图鉴功能&a…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用&#xff0c;结合SQLite数据库实现联系人管理功能&#xff0c;并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能&#xff0c;同时可以最小化到系统…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

MySQL 部分重点知识篇

一、数据库对象 1. 主键 定义 &#xff1a;主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 &#xff1a;确保数据的完整性&#xff0c;便于数据的查询和管理。 示例 &#xff1a;在学生信息表中&#xff0c;学号可以作为主键&#xff…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...