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

【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(下篇)

本篇会加入个人的所谓鱼式疯言

❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言

而是理解过并总结出来通俗易懂的大白话,

小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.

🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能接受我们这个概念 !!!

在这里插入图片描述

引言

HTTP 协议(超文本传输协议)是万维网中数据通信的基础。它定义了客户端与服务器之间如何进行交互,确保信息能够准确、高效地在网络中传输。从简单的网页浏览到复杂的网络应用,HTTP 协议都发挥着至关重要的作用,是互联网世界不可或缺的一部分。

目录

  1. http的方法

  2. http的报头详解

  3. http的状态码

一. http 的方法

在这里插入图片描述

1. http 方法的初识

http方法本质上是描述了 http的请求的 “动作”

比如:

我吃饭

我买饭

我做饭

在上篇中, 我们谈及 GET 是 客户端从服务器中拿 xxx 数据

POST 是 客户端给服务器发送 xxx 数据

但是除了 GETPOST 方法之外, 还有 其他方法

在这里插入图片描述
上面主流的方法相当于数据库的: get: 查, post:增 , delete : 删, put: 改

虽然这上面有很多方法,但是在实际开发中, 经常的只是用到 getpost , 偶尔用到 deleteput

好比东晋谢灵韵说过一句话:

天下文才十斗, 曹子建(曹植)独占一斗, 自己独占一斗, 天下人公分一斗。

而换成HTTP方法有十斗get 独占八斗post 占一斗, 剩下的占一斗 ~

所以从中体会到 get 和 post 方法的常用性 和重要性, 所以面试中也会经常考察这 两者之间的区别

2. get 的使用场景

  1. 直接在浏览器中 输入 Url 会触发get 请求

  2. HTML 中很多元素都会进一步触发 get 请求(下面但凡搜到百度域名的都会触发get请求)

在这里插入图片描述

  1. js 代码中也会触发 get 请求

3. post的使用场景

  • 登入/注册(像主编登入 gitee 就会触发 post 请求)

在这里插入图片描述

  • 上传文件(像小编在gitee 上上传一张照片也会触发 post 请求)

在这里插入图片描述

4. get 和 post 的区别

其实 get 和 post 没有本质上的区别 ,也就是说: 能使用 get 的地方也可以用post 来代替能使用 post 的地方也能用 get 来代替

如果要谈及区别的话, 只能说在 平常开发习惯 上的用法。

<1>. 语义不同, 方法表示的含义不同

get 的含义是从服务器拿数据, post 是向服务器发送数据。

<2>. 传递数据的方式不同

get 是通过 查询字符串(query string) 的方式把 自定义数据传递服务器, 而 post 是通过 正文(body)自定义数据传递给服务器

<3>. 幂等性不同

在这里插入图片描述

先了解幂等性不同之前, 我们先得了解什么是幂等性?

幂等性是数学上的概念, 可能讲起来比较抽象, 举个栗子吧

小伙伴都听过鲁迅先生的:

横眉冷对千夫指, 俯首甘为孺子牛。

其中的 孺子牛 就说明了:

当第一天,牛吃进去的草, 挤出来的奶。

那么第二天, 牛再吃草, 挤出来的还是奶

第三天, 牛吃草, 挤出来奶。

这样循环往复, 牛只要吃草, 挤出来的一定是相同的奶, 这样 不变的法则 们称之为幂等性。

如果牛第一天吃进去的是草, 挤出来的是奶;

第二天吃进去的是草, 挤出来的是xiang , 这样 会发生变化的法则 就不能称之为幂等性。

回到 幂等性的不同 的区别

那么对于 get 来说, 一般我们设置为 幂等性

对于 post 来说, 一般我们设置为 非幂等性

鱼式疯言

幂等性 是对于一般而已的, 是要根据 具体的业务逻辑 来的。

比如广告这种, 就会根据不同的广告出现的频次来动态的规划出现的先后顺序, 就出现了改变,不再是幂等性的。

<4>. 承接幂等性

get 被设计成 幂等性, 是可以被缓存的

post 被设计成幂等性, 就 不需要被缓存

二. http的报头详解

在这里插入图片描述

对于请求 / 响应报文的报头,小伙伴们只要认识下面几个常见的键值对即可

  • Host

  • Content-Length

  • Content- Type

  • User-Agent (UA)

  • Referer

  • Cookie

1. Host

Host: wkbrs1.tingyun.com

表示着服务器的 地址和端口号

其实这部分在 URL中有部分体现 了。

2. Content-Length

Content-Length: 11007

指的是 正文(body) 长度

鱼式疯言

如果没有正文 , 就 没有 Content-Length 这样的键值对

3. Content- Type

Content-Type: text/plain;charset=UTF-8

用于指派特点的正文类型, 让 浏览器会根据这里的值来如何解析body

比如: test / css , application / javascriptapplication / json

4. User-Agent (UA)

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0  

UA 指的是: 操作系统的信息(版本)浏览器的信息(版本)

鱼式疯言

有图有真相

在这里插入图片描述

5. Referer

Referer: https://www.csdn.net/

Referer 是描述着 当前页面是从哪个页面跳转过来的

www.csdn.net 就说明从 csdn 上跳转过来的

这个是用来 发给服务器 的~

https://wkbrs1.tingyun.com/action?
url=https%3A%2F%2Fwww.csdn.net%2F&pvid=859db54f64fb4087af00c02cb22a59be
&ref=https%3A%2F%2Fwww.csdn.net%2F&referrer=&v=3.3.1-saas.2
&av=3.3.1-saas.2&did=10_

其实 Url 中也说明了 从csdn网站跳转过来 的。

鱼式疯言

浏览器的回退 是 是和 浏览器自身维护的一个栈 有关。 不是 Referer 无关。

Referer发送给服务器 的。

比如广告商可以根据从哪里跳转到自己的广告页面来区分是百度的 还是搜狗的 , 从而确定收益等… 这样的作用。

6. Cookie

Cookie: 
UN=mgzdwm; 
Hm_up_6bcd52f51e9b3dce32bec4a3997715ac=%7B%22islogin%22%3A%7B%22value%22%3A%221%
22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%2
2%3A1%7D%2C%22isvip%22%3A%7B%

Cookie 是什么?

Cookie 是 浏览器本地化存储数据的一种机制, 是以 键值对的方式进行存储 , 是程序猿自己人为规定的, 按照域名为维度 进行存储。

Cookie 来自哪里 ?

在这里插入图片描述

Set-Cookie: csrfToken=v5icSAd3GLSmo_lWO464AmIy; Path=/newProxyVersions

Cookie 是客户端第一次访问服务器,服务器响应发送的一段数据 为 setCookie

Cookie 的作用是什么?

Cookie 最典型的场景就是保存用户的信息,相当于保存了用户的一个索引CookieID

如果用户需要查看并执行自身的各种任务, 就会把这个 CookieID 发送给服务器, 服务器那边 有详细的信息就会响应回去 , 并且服务器这边 自身是有CookieID 的 , 服务器自己使用也很方便。

这就相当于 两边都需要用到 , 就会暂时保存到 浏览器这边

举个小栗子来理解一下吧 :

比如小编的女神运动过度腿痛了

那么小编就要带她去医院
在这里插入图片描述

首先, 就需要拿着就诊卡挂号 , 然后就会登入医院的系统 , 这时服务器就会给我分配一个 CookieID, 就相当就诊卡上就是一个 CookieID 。

然后我去找医生看腿, 医生就叫我把她的就诊卡拿来刷一下, 医生就叫我带她先去检验科检验排泄物, 然后去影像科做个CT。

然后我们就去检验科检查,只要刷就诊卡。

最后到影像科做检查, 也只要刷就诊卡就行。

为啥只要刷就诊卡就行 ? 因为医生在给她看病的时候, 就把这样要做的事情登入的医院的服务器中, 而我们刷就诊卡的过程,就相当于把 CookieID 直接发送给服务器 , 这样 服务器就能及时做出效应

Cookie 生成 CookieID 也就是相当于 给用户自己做一个标识 , 当用户需要的时候, 服务器就能 根据这个标识做出及时的响应

三. http的状态码

对于状态码的认识, 小伙伴们应该见过!

在这里插入图片描述

在这里插入图片描述

下面让我们近距离来接触一下吧

1. 成功

像上述 200204 就代表成功执行。

2. 客户端错误

404(No Found): 路径写错了

在这里插入图片描述

403(Forbidden) : 访问被拒绝(没有权限)

在这里插入图片描述
405: HTTP方法不被允许

3. 服务器错误

500 : 服务器内部错误

504: 响应没有在规定时间内返回

4. 重定向

302: 重定向

重定向: 就说明出现了网页跳转, 从 访问A网站 跳转到 访问B网站

比如小编要换手机号了, 从 A 换到 B

这时我只需要办一个 呼叫转移 即可。 当小编的朋友 用A 手机号联系时 , 就会从 A 跳转到 B

鱼式疯言

一般而言:

2 开头的状态码: 成功

3 开头的状态码: 重定向

4 开头的状态码 : 客户端错误

5 开头的状态码: 服务器错误

目录

  • http的方法: 了解了主要的4中方法: getputpost , delete , 并且深入了解了 get 和post的使用场景, 和两种的不同。

  • http的报头详解:初步的了解了常见 六种不同的报头的键值对的结构特点

  • http的状态码 : 一般就为 2,3 4,5 开头的 不同含义的状态标识

如果觉得小编写的还不错的咱可支持 三连 下 (定有回访哦) , 不妥当的咱请评论区 指正

希望我的文章能给各位宝子们带来哪怕一点点的收获就是 小编创作 的最大 动力 💖 💖 💖

在这里插入图片描述

相关文章:

【网络协议大花园】应用层 http协议的使用小技巧,用好了都不用加班,效率翻两倍(下篇)

本篇会加入个人的所谓鱼式疯言 ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. &#x1f92d;&#x1f92d;&#x1f92d;可能说的不是那么严谨.但小编初心是能让更多人…...

5 前端系统开发:Vue2、Vue3框架(中):Vue前端工程化组件式开发

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言五、前端工程化&#xff08;使用Vue创建一个完整的企业级前端项目&#xff09;1 Vue脚手架&#xff08;Vue-cli&#xff09;环境准备&#xff08;1&#xff09;…...

【Leetcode刷题记录】1456. 定长子串中元音的最大数目---定长滑动窗口即解题思路总结

1456. 定长子串中元音的最大数目 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 这道题的暴力求解的思路是通过遍历字符串 s 的每一个长度为 k 的子串&#xf…...

Rust中使用ORM框架diesel报错问题

1 起初环境没有问题&#xff1a;在Rust开发的时候起初使用的是mingw64平台加stable-x86_64-pc-windows-gnu编译链&#xff0c;当使用到diesel时会报错&#xff0c;如下&#xff1a; x86_64-w64-mingw32/bin/ld.exe: cannot find -lmysql具体信息很长这是主要信息是rust找不到链…...

Java 数据库连接池:HikariCP 与 Druid 的对比

Java 数据库连接池&#xff1a;HikariCP 与 Druid 的对比 数据库连接池&#xff1a;HikariCP 1. 卓越的性能表现 HikariCP 在数据库连接池领域以其卓越的性能脱颖而出。 其字节码经过精心优化&#xff0c;减少了不必要的开销&#xff0c;使得连接获取和释放的速度极快。 在…...

04树 + 堆 + 优先队列 + 图(D1_树(D7_B+树(B+)))

目录 一、基本介绍 二、重要概念 非叶节点 叶节点 三、阶数 四、基本操作 等值查询(query) 范围查询(rangeQuery) 更新(update) 插入(insert) 删除(remove) 五、知识小结 一、基本介绍 B树是一种树数据结构&#xff0c;通常用于数据库和操作系统的文件系统中。 B树…...

MATLAB实现单层竞争神经网络数据分类

一.单层竞争神经网络介绍 单层竞争神经网络&#xff08;Single-Layer Competitive Neural Network&#xff09;是一种基于竞争学习的神经网络模型&#xff0c;主要用于数据分类和模式识别。其核心思想是通过神经元之间的竞争机制&#xff0c;使得网络能够自动学习输入数据的特…...

AITables首发:基于AI全自动推理设计数据库,国内首创,跑5分钟相当于架构师设计一周!

AITables仅运行5分钟&#xff0c;整个系统的表都设计好了&#xff01; 随着AI大模型技术的开源普及和平民化&#xff0c;现如今任何一个人都有可能成为超级个体。但随着企业级业务的膨胀和业务挑战增多&#xff0c;我们势必要跟上AI发展的节奏&#xff0c;让AI帮我们设计软件。…...

Go语言中结构体字面量

结构体字面量&#xff08;Struct Literal&#xff09;是在 Go 语言中用于创建和初始化结构体实例的一种语法。它允许你在声明结构体变量的同时&#xff0c;直接为其字段赋值。结构体字面量提供了一种简洁、直观的方式来创建结构体对象。 结构体字面量有两种主要形式&#xff1…...

PaddleOCR 截图自动文字识别

春节假期在家无聊&#xff0c;撸了三个小工具&#xff1a;PC截图编辑/PC录屏(用于meeting录屏)/PC截屏文字识别。因为感觉这三个小工具是工作中常常需要用到的&#xff0c;github上也有很多开源的&#xff0c;不过总有点或多或少的小问题&#xff0c;不利于自己的使用。脚本的编…...

【Blazor学习笔记】.NET Blazor学习笔记

我是大标题 我学习Blazor的顺序是基于Blazor University&#xff0c;然后实际内容不完全基于它&#xff0c;因为它的例子还是基于.NET Core 3.1做的&#xff0c;距离现在很遥远了。 截至本文撰写的时间&#xff0c;2025年&#xff0c;最新的.NET是.NET9了都&#xff0c;可能1…...

UE求职Demo开发日志#21 背包-仓库-装备栏移动物品

1 创建一个枚举记录来源位置 UENUM(BlueprintType) enum class EMyItemLocation : uint8 {None0,Bag UMETA(DisplayName "Bag"),Armed UMETA(DisplayName "Armed"),WareHouse UMETA(DisplayName "WareHouse"), }; 2 创建一个BagPad和WarePa…...

力扣988. 从叶结点开始的最小字符串

Problem: 988. 从叶结点开始的最小字符串 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 在先序遍历的过程中&#xff0c;用一个变量path拼接记录下其组成的字符串&#xff0c;当遇到根节点时再将其反转并比较大小&#xff08;字典顺序大小&…...

《PYTHON语言程序设计》(2018版)1.7近似π。利用步幅来进行修改

利用循环的步幅来计算派 利用正常的办法, pi 4 *(1-(1/3)(1/5)-(1/7)(1/9)-(1/11)(1/13)-(1/15)) print(pi)利用这段代码得出结果 我们如何利用循环来进行呢 一、思路 首先我们来利用excel表格来计算一下结果 我做了一个设想,让相加的部分先进行相加,然后再进行减法呢?? 结…...

低通滤波算法的数学原理和C语言实现

目录 概述 1 原理介绍 1. 1 基本概念 1.2 一阶RC低通滤波器模型 2 C语言完整实现 2.1 滤波器结构体定义 2.2 初始化函数 2.3 滤波计算函数 3 应用示例 3.1 噪声信号滤波 3.2 输出效果对比 3.3 关键参数选择指南 4 性能优化技巧 4.1 定点数优化 4.2 抗溢出处理 …...

【BUUCTF杂项题】荷兰宽带数据泄露、九连环

一.荷兰宽带数据泄露 打开发现是一个.bin为后缀的二进制文件&#xff0c;因为提示宽带数据泄露&#xff0c;考虑是宽带路由器方向的隐写 补充&#xff1a;大多数现代路由器都可以让您备份一个文件路由器的配置文件&#xff0c;软件RouterPassView可以读取这个路由配置文件。 用…...

安全策略实验报告

1.实验拓扑图 2.实验需求 vlan2属于办公区&#xff0c;vlan3生产区 办公区pc在工作日时间可以正常访问OAserver&#xff0c;i其他时间不允许 办公区pc可以在任意时间访问Web server 生产区pc可以在任意时间访问OA server但不能访问web server 特例&#xff1a;生产区pc可以…...

Haproxy+keepalived高可用集群,haproxy宕机的解决方案

Haproxykeepalived高可用集群&#xff0c;允许keepalived宕机&#xff0c;允许后端真实服务器宕机&#xff0c;但是不允许haproxy宕机&#xff0c; 所以下面就是解决方案 keepalived配置高可用检测脚本 &#xff0c;master和backup都要添加 配置脚本 # vim /etc/keepalived…...

亚博microros小车-原生ubuntu支持系列:20 ROS Robot APP建图

依赖工程 新建工程laserscan_to_point_publisher src/laserscan_to_point_publisher/laserscan_to_point_publisher/目录下新建文件laserscan_to_point_publish.py #!/usr/bin/env python3import rclpy from rclpy.node import Node from geometry_msgs.msg import PoseStam…...

Dockerfile构建容器镜像

Dockerfile 是一种文本格式的配置文件&#xff0c;用于自动化构建 Docker 镜像。它包含了一系列指令&#xff08;命令&#xff09;&#xff0c;每个指令定义了容器镜像构建过程中的一步操作。通过Dockerfile&#xff0c;我们可以指定基础镜像、安装依赖、配置环境变量、复制文件…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...