最后更新:2022-03-03 01:34:58 手机定位技术交流文章
网络协议是计算机在通信过程中要遵循的一些约定好的规则。
网络分层的原因:
○ 易于实现和维护,因为各层之间是独立的,层与层之间不会收到影响。
○ 有利于标准化的制定

| 请求方式 | 用途 |
|---|---|
| GET | 对服务器资源获取的简单请求 |
| POST | 用于发送包含用户提交数据的请求 |
| PUT | 向服务器提交数据,以修改数据 |
| DELETE | 删除服务器上的某些资源 |
| HEAD | 请求页面的首部,获取资源的元信息 |
| CONNECT | 用于ssl隧道的基于代理的请求 |
| OPTIONS | 返回所有可用的方法,常用于跨域 |
| TRACE | 追踪请求,响应的传输路径 |
如何理解无状态这个词呢?
HTTP的无状态,指协议对于事务处理没有记忆能力,不对通信状态进行保存,服务器无法判断用户身份。即打开一个服务器上的网页和上一次打开这个服务器上的网页之间没有任何联系。服务器不会去记住你是谁,所以是无状态协议。
1、DNS解析,查找域名对应的IP地址
2、与服务器通过三次握手,建立TCP连接
3、向服务器发送HTTP请求(cookies会随着请求发送给服务器)
4、服务器处理请求,返回网页内容(处理请求&它的参数、cookies、生成一个HTML响应)
5、浏览器解析并渲染页面
6、TCP四次挥手,连接结束
| 请求方式 | GET | POST |
|---|---|---|
| 数据包 | 产生一个TCP数据包 | 可能产生两个TCP数据包 |
| 编码方式 | 只能进行url编码 | 支持多种编码方式 |
| 请求参数 | 把参数包含在URL中,用&连接起来 | 通过 request body 传递参数 |
| 请求缓存 | 会主动Cache | 不会缓存,除非手动设置 |
| 收藏为书签 | 支持收藏为书签 | 不支持 |
| 历史记录 | 参数会被完整保留在浏览历史记录里 | 不会保留 |
| 参数数据类型 | ASCII的字符 | 没有限制数据类型 |
使用keep-alive来实现,在HTTP中响应体的Connection字段指定为keep-alive
什么是HTTP的长连接?
1、HTTP 分为长连接和短连接,本质上说的是TCP的长短连接。TCP连接是一个双向的通道,它可以保持一段时间不关闭的,因此TCP连接才具有真正的长连接和短连接。
2、TCP长连接可以复用一个TCP连接,来发起多次的HTTP请求,这样就可以就爱你少资源的消耗,比如一次请求HTML,如果是短连接,可能还需要请求后续的JS/CSS。
如何 设置长连接?
通过在头部(请求和响应头)设置Connection字段指定为 keep-alive,HTTP/1.0协议支持,但是默认是关闭的,从HTTP/1.1以后,连接默认是长连接。
在什么时候会超时呢?
HTTP 一般会有 httpd 守护进程,里面可以设置keep-alive timeout,当 tcp 连接闲置超过这个时间就会关闭,也可以在 HTTP 的 header 里面设置超时时间
TCP 的keep-alive包含三个参数,支持在系统内核的 net.ipv4 里面设置;当 TCP 连接之后,闲置了tcp_keepalive_time,则会发生侦测包,如果没有收到对方的 ACK,那么会每隔 tcp_keepalive_intvl 再发一次,直到发送了tcp_keepalive_probes,就会丢弃该连接。
从安全性、数据是否加密、默认端口等这几个方面思考。
HTTP,即超文本传输协议,是一个基于TCP/IP通信协议来传递明文数据的协议。HTTP会存在这几个问题:
明文传输,容易被窃听截取。验证对方身份,存在被冒充的风险完整性没有校验,容易被中间人篡改。
HTTPs的工作流程,要点:公私钥、数字证书、加密、对称加密、非对称加密

1、客户端发起HTTPs请求,连接到服务器的443端口
2、服务器必须要有一套数字证书(证书内容有公钥、私钥、证书颁发机构、失效日期)
3、服务器将自己的数 字证书(包含公钥)发送给客户端(私钥由服务器持有)
4、客户端开始验证数字证书的合法性,如果证书验证通过,就会生成一个随机的对称秘钥,用证书的公钥加密。
5、客户端将公钥加密后的密钥发送到服务器。
6、服务器接收到客户端发来的密文密钥之后,用自己之前保留的私钥对其进行非对称解密,解密之后就得到客户端的密钥然后用客户端密钥对返回数据进行对称加密,这样子传输的数据都是密文啦~
7、服务器将加密后的密文返回给客户端
8、客户端收到后,用自己的密钥对其进行对称解密,然后得到服务器返回的数据。
对称加密:值加密和解密使用同一密钥,要点是运算速度较快,缺点是如何安全将密钥传输给另一方,常见的对称加密算法有:DES、AES等。
非对称加密:指的是加密和解密使用不同的密钥(即公钥和私钥)。公钥和私钥是成对存在的,如果用公钥对数据加密,只有对应的私钥才能解密,常见的非对称加密算法有RSA。
概念:
区别:
本文由 在线网速测试 整理编辑,转载请注明出处。