【网络协议大花园】应用层 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://www.xdnf.cn/news/1557005.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

HCIP--以太网交换安全(二)

端口安全 一、端口安全概述 1.1、端口安全概述&#xff1a;端口安全是一种网络设备防护措施&#xff0c;通过将接口学习的MAC地址设为安全地址防止非法用户通信。 1.2、端口安全原理&#xff1a; 类型 定义 特点 安全动态MAC地址 使能端口而未是能Stichy MAC功能是转换的…

[运维]6.github 本地powershell登录及设置ssh连接

当我在本地的git hub 进行修改后&#xff0c;需要推送到远程github仓库。 当我运行了git add . git commit -m "ingress-controller image" 以后&#xff0c;运行git push origin main&#xff0c;发现由于网络原因无法连接到远程github仓库。 此时开始设置ssh连…

数组与集合的应用-数组演练

1、获取一维数组最小值 1.1 实例说明 一维数组常用于保存线性数据&#xff0c;例如数据库中的单行数据就可以使用一维数组保存。本实例接收用户在文本框中输入的单行数据&#xff0c;其中数据都是整数数字&#xff0c;以不同数量的空格分割数字&#xff0c;如图1所示。这个先行…

Spring相关知识补充

目录 一、将Bean存储到spring&#xff08;容器&#xff09;中 1、使用spring-config的方式将对象存储到spring容器中 2、使用类注解的方式将Bean对象存储到容器中 1️⃣、配置扫描路径&#xff08;使用注解的方式存对象的前提&#xff09; 2️⃣、使用五大类注解存储Bean对…

C语言练习

接下来一段时间&#xff0c;博主要参加军训没有时间更新C语言知识点&#xff0c;但博主会每天更新一道C语言的题作为分享。 1.计算并显示整数的差 分析&#xff1a;1.题目并不难&#xff0c;首先我们要知道printf这个库函数&#xff0c;是用来打印数据到屏幕的库函数 2.设置变…

【AI知识点】反向传播(Backpropagation)

反向传播&#xff08;Backpropagation&#xff09; 是训练神经网络的核心算法&#xff0c;它通过反向逐层计算损失函数对每个权重的梯度&#xff0c;来反向逐层更新网络的权重&#xff0c;从而最小化损失函数。 一、反向传播的基本概念 1. 前向传播&#xff08;Forward Propag…

文件丢失一键找回,四大数据恢复免费版工具推荐!

丢失数据的情况虽然不经常出现&#xff0c;但一旦出现都会让人头疼不已&#xff0c;而这时候&#xff0c;要如何恢复丢失的数据呢&#xff1f;一款免费好用的数据恢复工具就派上用场了&#xff01;接下来就为大家推荐几款好用的数据恢复工具&#xff01; 福昕数据恢复 直达链…

Redis list 类型

list类型 类型介绍 列表类型 list 相当于 数组或者顺序表 list内部的编码方式更接近于 双端队列 &#xff0c;支持头插 头删 尾插 尾删。 需要注意的是&#xff0c;Redis的下标支持负数下标。 比如数组大小为5&#xff0c;那么要访问下标为 -2 的值可以理解为访问 5 - 2 3 …

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【272-284】

272. 包基本介绍 272.1 看一个应用场景 272.2 包的三大作用 272.3 包的基本语法 273. 包原理 274. 包快速入门 在不同的包下面创建不同的Dog类 275. 包命名 276. 常用的包 一个包下,包含很多的类,java 中常用的包有: java.lang.* //lang 包是基本包&#xff0c;默认引入&…

农业政策与市场分析:解读当前政策导向下的农业发展趋势

在快速变化的全球经济格局中&#xff0c;农业作为国家稳定发展的基石&#xff0c;其政策走向与市场动态备受瞩目。本文将深入剖析当前的农业政策背景&#xff0c;探讨其对设计的导向作用&#xff0c;以及市场趋势的反馈与影响&#xff0c;为农业可持续发展提供洞见。 1. 政策背…

【大模型理论篇】大模型相关的周边技术分享-关于《NN and DL》的笔记

本文所要介绍的一本书《Neural Networks and Deep Learning》&#xff0c;该书作者Michael Nielsen&#xff0c;Y Combinator Research的研究员&#xff0c;是多年之前自己看的一本基础书籍&#xff0c;很适合入门了解一些关于深度学习的概念知识&#xff0c;当然也包含了一些小…

MyBatis 批量插入方案

MyBatis 批量插入 MyBatis 插入数据的方法有几种&#xff1a; for 循环&#xff0c;每次都重新连接一次数据库&#xff0c;每次只插入一条数据。 在编写 sql 时用 for each 标签&#xff0c;建立一次数据库连接。 使用 MyBatis 的 batchInsert 方法。 下面是方法 1 和 2 的…

三相逆变器中LCL滤波器分析

1.LCL滤波器 传统三相逆变器使用的是L型滤波器&#xff0c;其设计简单&#xff0c;但也存在着一些问题&#xff0c;如在同样的滤波效果下&#xff0c;L型滤波器电感尺寸、重量较大&#xff0c;成本较高&#xff0c;并且随着电感值的增大&#xff0c;其上的电压降增加比较明显&…

【MySQL必知会】事务

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 事务概念 &#x1f4c1; 事务操作 &#x1f4c1; 事务提交方式 &#x1f4c1; 隔离级别 &#x1f4c1; MVCC &#x1f4c2; 3个隐藏列字段 &#x1f4c2; undo日志 &#x1f4c2; Read View视图 &#x1f4c1; RR和R…

【GESP】C++一级练习BCQM3028,输入-计算-浮点型格式化输出

目前的几道题主要围绕浮点型的计算和格式化输出。强化基础语法练习。 详解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3028/ 【GESP】C一级练习BCQM3028&#xff0c;输入-计算-浮点型格式化输出 | OneCoder目前的几道题主要围绕浮点型的计算和格式化输出。强化基础语…

说说BPMN概念及应用

BPMN&#xff08;Business Process Modeling and Notation&#xff09;即业务流程建模与标注&#xff0c;是一种由OMG&#xff08;Object Management Group&#xff0c;对象管理组织&#xff09;制定的业务流程建模语言。以下是对BPMN标准的详细解释&#xff1a; 一、BPMN的起…

短剧系统源码短剧平台开发(H5+抖小+微小)部署介绍流程

有想法加入国内短剧赛道的请停下脚步&#xff0c;耐心看完此篇文章&#xff0c;相信一定会对您有所帮助的&#xff0c;下面将排序划分每一个步骤&#xff0c;短剧源码、申请资料、服务器选择、部署上架到正常运行等几个方面&#xff0c;整理了一些资料&#xff0c;来为大家举例…

Spring Boot助力医院数据管理

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常适…

MySQL进阶学习一(2024.10.07版)

2024-10-06 -------------------------------------------------------------------------------------------------------------------------------- 1.一条SQL语句是如何执行的 单进程的多线程模型 MySQL的物理目录 show global variables like "%basedir%"; …

LSTM时序预测 | Python实现LSTM长短期记忆神经网络时间序列预测

本文内容&#xff1a;Python实现LSTM长短期记忆神经网络时间序列预测&#xff0c;使用的数据集为AirPassengers 目录 数据集简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 数据集简介 AirPassengers 数据集的来源可以追溯到经典的统计和时间序列分析文献。原始数据集由 Box,…