应用层
计算机网络应用层
每一个不曾起舞的日子,都是对生命的辜负
这个作者很懒,什么都没留下…
展开
-
心跳包与乒乓包
1. 心跳包 客户端向服务端定时发送心跳包,通知服务端自己的状态的信息。 一般用于长连接的客户端,检测连接是否正常而提供的机制。 是基于应用层上的实现。 2. 乒乓包 心跳包一般是在建立连接后,定时发送心跳来检测连接是否正常。 而乒乓包是在没建立连接的情况下,定时向服务端发送(小型)数据包,询问服务器是否我需要拉去新的内容。如果收到服务端回复需要,则此时再建立连接,然后服务端将最新的数据发送给客户端。 也是基于应用层上的实现 注意:可以再去了解一下tcp的探测分节。 ...原创 2021-10-02 15:33:49 · 159 阅读 · 0 评论 -
CA机构与数字证书
1. 数字证书组成 公钥 持有者信息 证书认证机构(CA)的信息 CA对这份文件的数字签名以及使用的算法 证书的有效期 一些额外的其他信息 2. CA签发证书流程 首先CA会把持有者的公钥,用途,颁发者,有效时间等信息打成一个包,然后对这些信息进行hash计算,得到一个hash值H1 然后CA会使用自己的私钥将该Hash值加密,生成数字签名。 然后将这个数字签名添加到文件证书上,形成数字证书 3. 客户端验证证书流程 客户端会使用同样的Hash算法对证书的信息进行hash运算,得到一个h原创 2021-09-25 20:15:53 · 355 阅读 · 0 评论 -
HTTP1.1如何优化
使用keepAlive将短链接改为长连接 1. 尽量避免发送HTTP请求 利用缓存技术 客户端会把第一次请求及响应的数据保存到本地磁盘上,其中将请求的URL作为key,响应作为value。两者形成映射关系 服务端响应内容时会估算一个过期的时间,并将这个信息放到响应头部中。 如果后续浏览器再次发送相同的请求,就先在本地磁盘通过key查找相应的value。如果找到了且还没过期,就直接从本地读取该相应。 如果过期了,客户端就需要重新向服务端发送请求,不过会在请求头部的Etag字段带上第一次响应的响原创 2021-09-25 19:31:17 · 152 阅读 · 0 评论 -
DHCP协议
动态主机配置协议,属于应用层 1. 如何给自己的主机配置静态ip sudo ifconfig eth1 10.0.0.1/24 sudo ifconfig eth1 up 2. DHCP协议的工作方式 步骤一:一台机器新加入一个网络,会发送广播请求(这个过程称为DHCP Discover) 因为还没有分配ip,所以新人IP设置为0.0.0.0 因为不知道DHCP Server的IP,所以目的IP为广播255.255.255.255 步骤二:DHCP Server会给出向应 (这个过程称为D原创 2021-08-31 15:40:54 · 132 阅读 · 0 评论 -
HTTP状态码301与302的区别
301重定向 页面永久性转移。 当网页开发过程中出现网站目录结构调整,将页面转移到一个新的地址,此时用户搜索或者收藏夹里面的是之前的旧地址,访问后若没有301重定向会出现404页面 也可以实现多个域名跳转到同一个域名,比如www.baidu.com,还有一个域名为www.baidu.cc。 由于对这个域名设置了301重定向,当输入www.baidu.cc时,会自动跳转之www.baidu.com 301重定向的作用 有利于网站首选域的确定,对于同一资源页面的多条路径的301重定向有助于URL权重的集原创 2021-07-25 10:28:18 · 154 阅读 · 0 评论 -
HTTP的POST与GET的区别
使用场景 GET用于获取资源,而POST用于传输实体主体 参数 GET的参数是以查询字符串出现在URL中,因为URL只支持ASCII码,所以中文参数需要被编码 POST也可以在URL上加参数,但它也可以将参数存储到实体主体中去 URL上的参数长度有限制,不同的浏览器限制不同,实体主体中的参数没有长度限制 安全性(指对服务器端的安全性) get是可读的。不会改变服务器端状态,所以是安全的,同样还有HEAD、OPTIONS POST是不是安全的,因为它传送实体主体内容,这个内容可能是一些表单数据,服原创 2021-07-25 10:12:16 · 83 阅读 · 0 评论 -
HTTP1.0,1.1,2.0的版本区别
HTTP1.0 浏览器与服务器之间只能建立短连接,即浏览器每次请求都需要与服务器建立一个TCP连接,服务器完成请求后就立即断开TCP连接 HTTP1.1 主要时引进了持久连接,即TCP连接默认不关闭,可以被多个请求复用。就是说建立一个TCP连接后,可以在里面发送多个HTTP请求 请求的流水线处理(管道):以前时发一个HTTP请求后,收到HTTP响应后再发第二个HTTP请求,现在可以发送完第一个HTTP请求后不需要等收到响应就可以发送第二个HTTP请求。但是服务端必须按照接...原创 2021-07-25 09:52:42 · 214 阅读 · 1 评论 -
HTTP常见的返回码
1xx:指示信息。表示请求已接收,继续处理 2xx:成功。表示请求以成功接收、理解、接受。 3xx:重定向。要完成请求必须进行更进一步的操作。 4xx:客户端错误。请求有语法错误或者请求无法实现 5xx:服务端错误。服务器未能实现合法的请求。 常见的状态返回码 200 OK:客户端请求成功。表示请求被服务器正常处理。 206 partial content:服务器已经正确处理部分GET请求,实现断点续传或同时分片下载,该请求必须包含Range请求头来指示客户端期望得到的范围, 301 mov原创 2021-07-19 11:44:13 · 4258 阅读 · 0 评论 -
HTTPS的工作原理
https服务器默认端口时443 用户通过浏览器请求https网站。服务器收到请求,选择浏览器支持的加密和hash算法,同时返回数字证书给浏览器,包括颁发机构,网站、公钥、证书有效期等信息 浏览器对证书的内容进行校验,如果有问题,则会有一个提示警告。否则就生成一个随机数X,同时使用证书中的公钥对这个随机数X进行加密,并且发送给服务器 服务器收到之后,使用私钥解密,得到随机数X,然后使用X对网页内容进行加密,返回给浏览器 浏览器则使用X和之前约定好的加密算法(对称加密)进行解密,得到最终的网页内容原创 2021-07-18 21:47:04 · 198 阅读 · 2 评论 -
一次HTTP请求的全过程
1. 域名解析 浏览器搜索自己的DNS缓存 若没有 ,搜索操作系统的DNS缓存 若没有,搜索操作系统中hosts文件中是否有 若没有,操作系统将域名发送到本地域名服务器,本地域名服务器查询自己的DNS缓存 若没有(迭代查询) 本地域名服务器向根域名服务器发送请求,根域名服务器返回如com域的顶级域名服务器地址 本地域名服务器向顶级域名服务器发送请求,返回权限域名服务器地址 本地域名服务器向权限域名服务器发送请求,会得到具体的IP地址 本地域名服务器将IP地址返回给操作系统,同时自己也原创 2021-07-18 21:36:26 · 133 阅读 · 0 评论