网络原理3-应用层(HTTP/HTTPS)

news2024/9/27 7:07:52

目录

  • DNS
  • HTTP/HTTPS
    • HTTP协议报文
    • HTTP的方法
    • 请求报头、响应报头(header)
    • 状态码
    • 构造HTTP请求
    • HTTPS

应用层是我们日常开发中最常用的一层,因为其他层:传输层、网络层、数据链路层、物理层这些都是操作系统和硬件、驱动已经实现好的,我们只能使用人家的。应用层我们可以使用别人已经创建好的协议(HTTP等),也可以自己定义应用层协议

自定义应用层协议要做的事情:

1、明确前后端交互的过程中,需要传递哪些信息

2、明确组织这些信息的格式,前后端要是同一种方式

网络通信常见的数据格式有:xml、JSON、yml

1、xml

采用成对的标签,类似于HTML,但是xml的标签可以自定义,例如 < userID > 1011< userID/>

2、JSON

采用键值对的形式,键和值使用冒号分开,例如 {“userID”:1011,“username”:“zhangsan”}

3、yml

强制了数据组织的格式,要求键值对必须占据一行

DNS

DNS是一个应用层协议,DNS就是域名解析系统。域名对应一个或者多个IP地址,或者多个域名对应一个IP地址。由于IP地址不方便记忆并且不能显示地址组织的名称和性质,人们设计出了域名,并通过域名系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串,把域名转换成IP地址,这样的系统就叫域名解析系统。

当某个电脑需要进行域名解析,直接会访问DNS服务器。全世界有非常多设备上网,一个服务器是顶不住的,所以有了镜像服务器。当服务器数据有变更,只需要修改基准的服务器(也叫根服务器),其他镜像服务器从根服务器中同步数据。

HTTP/HTTPS

HTTP全称:HyperTransferProtocol,超文本传输协议,这里的文本指的是字符串,而超文本是在文本的基础上的扩展,也就是说,HTTP不仅可以传输文本,也可以传输图片、音频等其他数据,HTTP是最广泛使用的应用层协议。HTTPS可以认为是HTTP的升级版,安全性比HTTP高。除了安全性外,其他部分都是一样的。HTTP是一问一答模型的协议,客户端发一个请求,服务器就返回一个响应。

HTTP应用场景:

1、使用浏览器,打开网页

2、打开手机App,加载相关的信息

3、服务器之间的调用,大概率也是使用的HTTP

现在HTTP已经更新至3.0版本,3.0基于UDP,但是我们最常使用的还是HTTP/1.1(基于TCP)

HTTP协议报文

在学习HTTP协议报文格式前,我们可以借助抓包工具,来了解HTTP请求响应的详细情况。

选择Fiddler进行抓包

下载网址

选择Fiddler Classic

在这里插入图片描述

选择Try For Free
在这里插入图片描述

邮箱随便填一个,国家随便填一个,然后点击Download For Windows

在这里插入图片描述

打开软件后
在这里插入图片描述

点击Tools,然后点击Options

在这里插入图片描述

点击HTTPS,以上4个选项全部勾选,

工具的使用:

在使用前,先选中左边,ctrl+a+delete清除列表

在这里插入图片描述

然后再随便打开一个网页,在网页中点击刷新,这里拿CSDN网页举例
在这里插入图片描述

此时,会显示抓取到的数据报列表,双击CSDN的数据报列表
在这里插入图片描述

右上方部分是请求,右下方部分是响应
在这里插入图片描述

选择Raw,此时列出的是原始的HTTP请求

如果想要更清楚的观察,可以点击View in Notepad,在记事本中打开

在这里插入图片描述

但是响应的文本显示的是乱码,因为这里的数据是压缩后的二进制数据

在这里插入图片描述

此时点击如下按钮即可
在这里插入图片描述

很容易发现,响应其实就是HTML
在这里插入图片描述

HTTP协议的请求:
在这里插入图片描述

1)首行

GET https://www.csdn.net/ HTTP/1.1

GET表示HTTP请求的方法(method) ,中间部分是URL,表示访问的资源,HTTP/1.1指的是HTTP的版本是1.1版本

2)请求头(红框框)部分
在这里插入图片描述

请求头的每一行都是一个键值对,键和值用冒号分割。

3)空行(请求头的结束标记)

4)正文(body)

有的请求是没有body的,有的有body

如抓取gitee

在这里插入图片描述

HTTP请求的基本格式
在这里插入图片描述

HTTP协议的响应

在这里插入图片描述

1)首行

HTTP/1.1 200 OK

HTTP/1.1表示版本,200表示状态码,OK是状态码的描述

2)响应头

响应头的每一行也是一个键值对,键值对之间用冒号分割

3)空行

4)正文(body)

响应的正文通常是HTML、CSS、JS等

HTTP响应的基本格式:
在这里插入图片描述

URL

URL是唯一资源定位符,网络上的资源可以是一个网页、一个图片、一个文件

协议名://ip地址:端口号/带层次的路径/资源名称?查询字符串#片段标识符

在这里插入图片描述

协议方案名:指使用的是哪种协议

登录信息:进行身份认证,现在已经见不到了

服务器地址:要访问的资源的服务器地址,可以是IP也可以是域名

服务器端口号:IP是确定唯一的主机,端口号是确定主机上的程序,如果不写端口号,浏览器会根据协议类型,自动分配端口,如果是HTTP,端口号是80,如果是HTTPS,端口号是443

带层次的文件路径:确定服务器上的具体资源,

查询字符串:查询字符串是程序猿自定义的键值对结构,是针对访问的资源进行补充说明,键值对之间使用&分割,键和值之间使用=分割,等号两边不能有空格

片段标识符:标识页面中的某个部分,常见于文档类文件。例如某个文档网站中,点开目录,每个章节会对应一个片段标识符

URL encode:

查询字符串是键值对结果,但是它的值里面可能包含特殊符号,而URL中有的特殊符号是有重要意义的,如果值出现了特殊符号,在解析的时候可能会出现问题,所以需要转义,URL encode的作用就是把这些特殊意义的字符进行转义。

例如,在浏览器搜索c++,

在这里插入图片描述

此处把 + 字符转义成 %2B

转义规则:把要转义的字符或者汉字,每个字节以16进制的形式表示出来,然后给每个字节前面加上%

例如,在浏览器中搜索 你好,复制地址栏的URL
在这里插入图片描述

得到如下内容

https://cn.bing.com/search?q=%E4%BD%A0%E5%A5%BD&qs=n&form=QBRE&sp=-1&lq=0&pq=%E4%BD%A0%E5%A5%BD&sc=10-2&sk=&cvid=A7357277519D4F10A61D2542BB754587&ghsh=0&ghacc=0&ghpl=

根据utf编码查得你好这两个字的16进制编码

在这里插入图片描述

HTTP的方法

方法描述了HTTP请求的动作想要干什么,HTTP的方法如下

方法说明支持的HTTP协议版本
GET获取资源1.0 、1.1
POST传输实体主体1.0 、1.1
PUT传输文件1.0 、1.1
HEAD获取报文首部1.0 、1.1
DELETE删除文件1.0 、1.1
OPTIONS询问支持的方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINK断开连接关系1.0

常用的方法有GET、POST,重点掌握这两个

**GET:**直接在浏览器中输入一个URL,就会触发GET请求

打开Fiddler,在CSDN主页,按住Ctrl点击刷新,Fiddler会获取到如下的内容
在这里插入图片描述

这里说明了,访问一个网页并不是一个HTTP请求就能完成的,而是需要多个HTTP请求得到的结果。

上述带有csdn的都是这个页面触发的请求,其实就是css文件、JavaScript文件、图片文件、字体文件等,在你的浏览器第一次访问这个网页时,会把这些资源保存到你的电脑上,以后再访问的时候就不需要再次获取这些内容了,这个机制就叫浏览器缓存,这样的机制加快了页面展示速度,节省服务器宽度。直接点击刷新,是从缓存中读取数据,按住Ctrl再点刷新可以强制忽略缓存,重新从服务器读取数据。

POST

通常出现在登录、注册以及上传文件的场景

例如,登录Gitee的请求:
在这里插入图片描述

POST和GET的区别:

首先,这两个方法没有本质区别,POST能用的GET也能用,但是在使用习惯上有区别

1、语义不同:一般来说,GET用于表示从服务器获取数据,POST表示提交数据给服务器。

2、传递数据的方式不同:一般来说,GET传递数据,通过是通过query string,把自定义的数据提交给服务器;POST是通过body把自定义数据交给服务器。

3、GET方法对应的请求,通常设计成幂等的,POST方法对幂等性没有要求。幂等: 是其任意多次执行所产生的影响均与一次执行的影响相同,(牛今天吃草,今天挤出来的是奶,明天吃草明天挤出来的也是奶,结果非常稳定,就是幂等的,如果今天吃草今天挤出来的是史,那就是不幂等)。这个区别在今天不是非常合适了,实际开发中还是需要看具体的业务要求,但是http标准文档中建议这么做

4、GET如果设计成幂等性,此时GET的结果可以缓存,POST不设计成幂等性一般不会缓存

请求报头、响应报头(header)

header是键值对格式的,常见的报头:

1、Host:

表示服务器主机的地址和端口

2、Content-Length、Content-Type:

Length表示body中数据的长度,单位字节,Type表示body中数据的格式。如果请求、响应中没有body,也就没有这两个字段。HTTP是基于TCP的(1.1版本),TCP是面向字节流,存在粘包问题,有了Length、Type就能知道HTTP数据包从哪开始从哪结束。Content-Length和Content-Type在响应和请求中都会存在

常见的Content-Type的取值:

Content-Type:text/html;charset=utf8
Content-Type:text/css
Content-Type: application/javascript;charset=utf8
Content-Type: application/jason

3、User-Agent

例如:

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

主要包含了操作系统信息(版本)和浏览器信息(版本),表述了你用的什么设备上网

4、Referer

描述了当前页面是从哪个页面跳转过来的,例如,在搜狗搜索主页中搜索哔哩哔哩,打开哔哩哔哩的主页

在这里插入图片描述

5、Cookie

Cookie也是键值对结构的,使用;分割键值对,使用=分割键和值,键值对的含义是程序员自定义的

在这里插入图片描述

Cookie是浏览器给网站提供的一种“客户端存储数据”的机制

浏览器禁止网页直接访问咱们的硬盘,但是浏览器允许网页通过键值对的方式存储数据,这样的键值对数据是浏览器负责存储到咱们的硬盘中,网页不能干涉。

浏览器在第一次访问某个网站时,浏览器中可能没有Cookie,服务器返回的响应会带有Set-Cookie,Cookie中的键值对就会写到浏览器中,浏览器收到Cookie就会存储到本地硬盘中。接下来浏览器访问网站时,就会带有Cookie

如何查看Cookie?

在这里插入图片描述
在这里插入图片描述

可以选择删除Cookie,删除之后本地存储的Cookie也会删除掉,在下一次访问这个网站时,服务器返回的响应会带有Set-Cookie,浏览器会根据这个重新存储Cookie。

总结:

Cookie是什么?

浏览器本地持久化存储数据的机制,按照键值对方式存储,键值对内容程序员可以自定义,按照域名为维度分别进行存储,每个网站都有自己的Cookie,互不影响。

Cookie从哪里来?

服务器返回的响应数据中会包含Set-Cookie字段。

Cookie到哪里去?

Cookie虽然会存储到本地,但是目的并不如此,存储好之后,后续浏览器再次访问同一个网站的服务器时,会把之前存储的Cookie带上,发送给服务器。为什么发回来还要再发回去?Cookie中的数据在客户端中需要使用到,在服务器这边也要使用到。

Cookie中存储的键值对是程序员自己定义的

Cookie经典使用场景:
在这里插入图片描述

总结:

常见的HTTP响应头属性:

  1. Content-Type: 指定返回的资源的MIME类型。
  2. Content-Length: 指定返回的资源的长度,单位是字节。
  3. Cache-Control: 控制响应的缓存行为。
  4. Connection: 控制持久连接。
  5. Date: 消息发出的时间。
  6. ETag: 资源的版本/修订号。
  7. Expires: 资源的过期时间。
  8. Last-Modified: 资源最后被修改的时间。
  9. Server: 服务器软件名称。
  10. Set-Cookie: 设置客户端的cookie。
  11. WWW-Authenticate: 用于HTTP认证。
  12. Access-Control-Allow-Origin: 跨域资源共享(CORS)策略。
  13. X-Frame-Options: 控制资源是否可以在iframe中显示。
  14. Content-Disposition: 控制内容的下载方式。
  15. Content-Encoding: 指定内容的编码格式。
  16. Content-Language: 指定内容的语言。
  17. Content-Security-Policy: 定义了网页的资源加载策略。
  18. Strict-Transport-Security: 告诉浏览器仅通过HTTPS连接。
  19. X-Content-Type-Options: 防止MIME类型混淆攻击。
  20. X-XSS-Protection: 启用浏览器的XSS过滤和阻断功能。
  21. Location: 用于重定向的URL。
  22. Retry-After: 告诉客户端在多长时间后再次发起请求。
  23. Vary: 告诉缓存服务器何时需要重新请求。
  24. Accept-Ranges: 指定服务器是否支持范围请求。
  25. Allow: 指定允许的HTTP方法。
  26. Cross-Origin-Embedder-Policy: 控制跨源嵌入策略。
  27. Cross-Origin-Opener-Policy: 控制跨源窗口行为。
  28. Cross-Origin-Resource-Policy: 控制跨源资源的加载策略。

常见的HTTP请求属性:

  1. Accept: 客户端能够处理的媒体类型。
  2. Accept-Language: 客户端能够接受的语言。
  3. Accept-Encoding: 客户端能够接受的编码格式。
  4. Authorization: 客户端发送的认证信息。
  5. Cache-Control: 客户端的缓存指令。
  6. Connection: 控制持久连接。
  7. Content-Length: 请求体的长度。
  8. Content-Type: 请求体的媒体类型。
  9. Cookie: 客户端发送的cookie信息。
  10. Host: 请求的服务器域名和端口。
  11. Origin: 请求的源。
  12. Referer: 请求的来源URL。
  13. User-Agent: 客户端的用户代理信息。
  14. X-Requested-With: 通常用于标识Ajax请求。

请求头用于向服务器提供额外的信息,以帮助服务器正确处理请求。

状态码

状态码表示访问一个页面请求是否成功,以及请求失败的原因

常见的状态码:

200 OK : 表示成功

404 Not Found :表示浏览器根据url访问的资源在服务器上没有找到,url的路径不对

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

405 Method Not Allowed :方法不支持

500 Internal Server Error :服务器内部错误,一般是服务器端代码出bug,抛出异常但是没有catch

504 Gateway Timeout :超时,响应没有在规定时间内返回

302 Found :重定向,访问A网站时会自动跳转到B网站,此时响应中返回的状态码就是302,并且在响应头中Location属性(包含B网站的地址)。浏览器收到302状态码后会自动跳转到Location中的网站。

构造HTTP请求

使用工具Postman,下载链接
在这里插入图片描述
点击next
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这样就可以自己构造HTTP请求了

HTTPS

HTTP协议内容是以文本的形式明文传输,传输的数据容易被黑客、运营商劫持和篡改,HTTPS在HTTP的基础上,引入了加密机制,解决了上述的问题。

明文:传输的原始数据

密文:对明文进行加密后的数据

加密:明文–>密文

解密:密文–>明文

密钥:进行加密、解密的工具

对称加密:加密和解密都使用同一个密钥

非对称加密:使用一对密钥,使用A加密就使用B解密,使用B加密则使用A解密。这两个密钥一个公开一个私藏,公开的叫公钥,私藏的叫私钥。

关于HTTPS的工作过程:

这里只介绍加密过程,因为HTTPS是在HTTP基础上引入了加密机制,其他内容都是一样的。
在这里插入图片描述

未加密:客户端明文传输数据,很容易被黑客入侵,获取到请求的内容,并进行篡改

1、引入对称加密

在这里插入图片描述

一个服务器对应多个客户端,每个客户端的密钥都不同,要求每个客户端连上服务器的时候自己随机生成一个对称密钥,服务器拿到这个密钥才能进行解密,因此密钥也需要进行传输。
在这里插入图片描述

但是,密钥是明文传输的,黑客很容易获取到密钥。

2)引入非对称加密:

通过非对称加密,对要传输的密钥进行加密,而传输的数据还是使用对称加密。

在这里插入图片描述

上述流程看似安全,实则存在缺陷
在这里插入图片描述

3)引入证书

问题的关键是,能让客户端辨别出拿到的公钥是不是正确的。如何证明公钥是正确的?引入第三方公证机构,想搭建服务器,使用HTTPS,就需要在公证机构申请证书。申请证书时就要向机构提供信息:网站的域名,备案号,公钥等,公证机构根据这些信息生成一个证书(电子版),证书的内容包含了证书发布机构、证书有效期、公钥、证书所有者、签名等。签名则是保证证书合法性的重要内容。

服务器申请到证书后,后续客户端从服务器拿公钥,就不是拿公钥,而是拿整个证书。客户端可以根据证书的签名来验证证书的合法性。

签名的生成:校验和+加密,把证书中的所有字段综合在一起计算校验和,然后公证机构生成一对公钥私钥,公证机构持有私钥,公钥分发给客户端,公证机构拿着私钥对校验和进行加密得到数字签名。数字签名其实就是加密后的校验和。

客户端验证数字签名:

1、客户端把证书中各个字段再计算一次校验和,得到checksum1

2、客户端使用公证机构发的公钥对数字签名进行解密得到checksum2

3、比较,如果checksum1==checksum2证明当前证书和服务器发出的证书是一样的,如果checksum1!=checksum2,说明证书的内容被黑客篡改过。

客户端手里的公证机构的公钥是操作系统内置的,而不是通过网络获取的,所以不存在公证机构的公钥是黑客伪造的。

另外黑客不能做到:篡改数据后,让数字签名解密出来的checksum1和篡改后的checksum2相等,因为黑客篡改数据后需要使用公证机构的私钥来加密。如果黑客自己生成一个私钥,这时客户端拿着公证机构的公钥,也解密不了。

总结:HTTPS工作流程

1、引入对称加密

2、传输对称密钥

3、对 对称密钥进行加密,引入非对称加密

4、中间人攻击

5、引入证书,解决中间人攻击

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2164897.html

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

相关文章

【Python】的语言基础学习方法 快速掌握! 源码可分享!

python语言基础 第一章 你好python 1.1安装python https://www.python.org/downloads/release/python-3104/ 自定义安装&#xff0c;全选 配置python的安装路径 验证&#xff1a;cmd输入python 1.2python解释器 解释器主要做了两件事&#xff1a; 翻译代码提交给计算机去运…

Linux 下安装mysql

1.检查之前是否安装过mysql rpm -qa | grep mysql 如果之前安装过&#xff0c;删除之前的安装包 rpm -e 安装包 如果没有&#xff0c;进行后续安装 2. 下载 MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 3…

plt常用函数介绍二

目录 fig.add_subplot()ax.set()plt.legend()plt.subplots_adjust()plt.suptitle()plt.grid() fig.add_subplot() fig.add_subplot() 是 Matplotlib 中 Figure 对象的方法&#xff0c;用于在图形中添加子图&#xff08;subplot&#xff09;。 其语法为&#xff1a; subplot(…

同声传译用什么软件最方便?推荐五款易用的同声传译软件

在国际贸易、国际会议及跨国合作项目中&#xff0c;语言障碍往往是沟通效率的一大挑战。 为了解决这个问题&#xff0c;同声传译免费软件应运而生&#xff0c;它们通过先进的技术实现了即时准确的语言转换&#xff0c;极大地促进了不同语言使用者间的交流与协作。 下面&#…

2025考研倒计时 考研时间公布了 你准备好复习冲刺了吗?

2025考研倒计时 考研时间公布了 你准备好复习冲刺了吗&#xff1f;今年的考研时间终于公布了&#xff1a; 正式报名时间2024.10.15-2024.10.28&#xff0c;初试时间12月21日&#xff0c;相信很多学子们已经做好冲刺的准备了。 在这关键的90天的时间内&#xff0c;如何做到时刻…

各种编程语言中有哪些共性?超详细+通俗易懂版!!!

各种编程语言中存在着一些共性&#xff0c;这些共性构成了编程语言的基础框架和设计原则。以下是这些共性的主要方面&#xff1a; 1. 遵循基本的编程原则 模块化&#xff1a;将程序划分为多个独立、可复用的模块&#xff0c;有助于降低程序的复杂度并提高可维护性。封装&#…

【计网】从零开始学习http协议 --- http的请求与应答

如果你不能飞&#xff0c;那就跑&#xff1b; 如果跑不动&#xff0c;那就走&#xff1b; 实在走不了&#xff0c;那就爬。 无论做什么&#xff0c;你都要勇往直前。 --- 马丁路德金 --- 从零开始学习http协议 1 什么是http协议2 认识URL3 http的请求和应答3.1 服务端设计…

Stack Overflow 如何提升其单元测试水平

在 Stack Overflow 成立之初&#xff0c;我们只是一个快速、精简运行的网站。Stackoverflow.com 是由开发人员为开发人员创建的小型初创公司。像所有初创公司一样&#xff0c;我们优先考虑对我们来说最重要的质量属性&#xff0c;而忽视了许多其他属性&#xff0c;包括根据最佳…

功耗或600W,RTX 5090、5080集体降级国内特供版

早在一个多月前&#xff0c;国外知名硬件泄密者 kopite7kimi 就曾透露 NVIDIA RTX 50 系显卡或推迟到明年初 CES 大会上发布。 来源&#xff1a;X 结合前几天爆出的台积电 4NP 工艺产能告急、NVIDIA 为提升下代显卡良率重新流片等。 如果不出意外&#xff0c;这原定在今年第四…

Π-系上的最小 d-系等于 Π-系上的最小集代数

称空间 Ω \Omega Ω 中满足下述条件的集系为 d d d-系: Ω ∈ D \Omega \in \mathscr{D} Ω∈D若 A , B ∈ D A, B \in \mathscr{D} A,B∈D 且 A ∩ B ϕ A \cap B\phi A∩Bϕ, 则 A B ∈ D AB \in \mathscr{D} AB∈D;若 A ⊂ B , A , B ∈ D A \subset B, A, B \in \…

visio 2021入门直通车(一天全搞定)

安装Visio 2021 (64bit)安装教程 1.1. 模板类型 1.2. 界面布局 1.3. 插入对象 1.4. 添加页面 1.5. 全屏演示|页面自适应|visio文件切换 1.6. 快捷键 快捷键说明 Shift 鼠标滚轮 按下shift&#xff0c;点击鼠标滚轮水平页面滚动 鼠标滚轮 垂直页面滚动 Ctrl 鼠标滚轮 按…

每天分享一个FPGA开源代码(6)- 浮点数运算

FPGA&#xff08;现场可编程门阵列&#xff09;是一种高度可配置的集成电路&#xff0c;它可以用于实现各种数字信号处理任务&#xff0c;包括浮点数运算。 在FPGA上进行浮点数运算通常涉及以下几个步骤&#xff1a; 1. 选择浮点数格式 浮点数运算首先要确定使用哪种浮点数格…

百度amis框架经验分享

百度amis框架经验分享 官方文档 amis - 低代码前端框架 这篇文章讲了amis的设计 为什么说百度AMIS框架是一个优秀的设计_百度前端框架-CSDN博客 学习方法&#xff1a; 最好的学习方法就是GPT官方文档 不要去很大力气通读官方文档&#xff0c;大概浏览一遍就行&#xff0c; 以你…

docker中搭建nacos并将springboot项目的配置文件转移到nacos中

前言 网上搜索docker中搭建nacos发现文章不是很好理解&#xff0c;正好最近在搭建nacos练手。记录一下整个搭建过程。 docker中搭建nacos并将springboot项目的配置文件转移到nacos中 前言1 docker中下拉nacos镜像2 配置nacos信息1. 创建docker的挂载目录&#xff0c;实现数据的…

SpringBoot之登录校验关于JWT、Filter、interceptor、异常处理的使用

什么是登录校验&#xff1f; 所谓登录校验&#xff0c;指的是我们在服务器端接收到浏览器发送过来的请求之后&#xff0c;首先我们要对请求进行校验。先要校验一下用户登录了没有&#xff0c;如果用户已经登录了&#xff0c;就直接执行对应的业务操作就可以了&#xff1b;如果用…

机器学习西瓜书笔记(十一) 第十一章特征选择与稀疏学习+代码

第十一章 特征选择与稀疏学习11.1 子集搜索与评价小结 11.2 过滤式选择小结 11.3 包裹式选择小结 11.4 嵌入式选择与L1正则化小结 11.5 稀疏表示与字典学习小结 11.6 压缩感知小结 11.7 代码单变量特征选择 11.8 章末小结 特征选择与稀疏学习 11.1 子集搜索与评价 小结 子集搜…

Facebook Marketplace无法使用的原因及解决方案

Facebook Marketplace是一项广受欢迎的买卖平台&#xff0c;然而&#xff0c;有时候用户可能会遇到无法访问或使用该功能的问题。通常&#xff0c;这些问题可以归结为以下几类原因&#xff1a; 地理位置限制&#xff1a; Facebook Marketplace并非在全球每个地区都可用。在某些…

【C++笔试强训】如何成为算法糕手Day2

学习编程就得循环渐进&#xff0c;扎实基础&#xff0c;勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 第一题&#xff1a;牛牛的快递 第二题&#xff1a;最小花费爬楼梯 第三题&#xff1a;数组中两个字符串的最小距离 补充0x3f3f3f3f 第一题…

OpenWrt学习(二)

OpenWrt是基于Linux系统进行开发需要学习Linux系统基本知识。下面介绍一下OpenWrt系统下常用的指令。 时间命令 查看当前时间 date查看当前日历 cal关机和重启 立即安全关闭系统 shutdown -h now 嵌入式设备不会关机&#xff0c;只会停止运行系统。 重新启动系统 reb…

内核是如何发送数据包

1、网络发包总览 网络发包总流程图如下&#xff1a; 从上图中可以看到用户数据被拷贝到内核态&#xff0c;然后经过协议栈处理后进入RingBuffer。随后网卡驱动真正的将数据发送了出去。当发送完成的时候&#xff0c;是通过硬中断来通知CPU&#xff0c;然后清理RingBuffer。 …