-
NET 网络专题汇总-07-HTTPS ECDHE 握手解析
HTTPS ECDHE 握手解析
HTTPS 常用的密钥交换算法有两种,分别是 RSA 和 ECDHE 算法。
其中,RSA 是比较传统的密钥交换算法,它不具备前向安全的性质,因此现在很少服务器使用的。
而 ECDHE 算法具有前向安全,所以被广泛使用。
我在上一篇已经介绍了 RSA 握手的过程,今天这一篇就「从理论再到实战抓包」介绍 ECDHE 算法。
离散对数
ECDHE 密...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-07-HTTPS RSA 握手解析
HTTPS RSA 握手解析
我前面讲,简单给大家介绍了的 HTTPS 握手过程,但是还不够细!
只讲了比较基础的部分,所以这次我们再来深入一下 HTTPS,用实战抓包的方式,带大家再来窥探一次 HTTPS。
TLS 握手过程
HTTP 由于是明文传输,所谓的明文,就是说客户端与服务端通信的信息都是肉眼可见的,随意使用一个抓包工具都可以截获通信的内容。
所以安全上存在以下三个风险:...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-07-HTTP/1.1 如何优化
概览
我们可以从下面这三种优化思路来优化 HTTP/1.1 协议:
尽量避免发送 HTTP 请求;
在需要发送 HTTP 请求时,考虑如何减少请求次数;
减少服务器的 HTTP 响应的数据大小;
下面,就针对这三种思路具体看看有哪些优化方法。
如何避免发送 HTTP 请求?
这个思路你看到是不是觉得很奇怪,不发送 HT...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-07-HTTP 常见面试题
概览
HTTP 基本概念
Get 与 Post
HTTP 特性
HTTP 缓存技术
HTTPS 与 HTTP
HTTP/1.1、HTTP/2、HTTP/3 演变
HTTP 是什么?
HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。
能否详细解释「超文本传输协议」?
HTTP 的名字「超文本协议传输」,它可以拆成三个部分:
超文本
传...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-06-23-用了 TCP 协议,数据一定不会丢吗?
Q
问大家一句:TCP 是一个可靠的传输协议,那它一定能保证数据不丢失吗?
这次,就跟大家探讨这个问题。
数据包的发送流程
首先,我们两个手机的绿皮聊天软件客户端,要通信,中间会通过它们家服务器。大概长这样。
用户A 《=》 服务器 《=》 用户B
但为了简化模型,我们把中间的服务器给省略掉,假设这是个端到端的通信。且为了保证消息的可靠性,我们盲猜它们之间用的是TCP协议进行通...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-06-22-没有 accept,能建立 TCP 连接吗?
Q
这次,我们来讨论一下,没有 accept,能建立 TCP 连接吗?
下面这个动图,是我们平时客户端和服务端建立连接时的代码流程。
对应的是下面一段简化过的服务端伪代码。
int main()
{
/*Step 1: 创建服务器端监听socket描述符listen_fd*/
listen_fd = socket(AF_INET, SOCK_STREAM,...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-06-21-服务端没有 listen,客户端发起连接建立,会发生什么?
问题
服务端如果只bind了ip和端口,但是没有调用Listen让这个socket监听连接,这时候如果客户端朝这个服务端socket发数据,会发生啥?
这位读者的角度是以为服务端没有调用 listen,客户端会 ping 不通服务器,很明显,搞错了。
ping 使用的协议是 ICMP,属于网络层的事情,而面试官问的是传输层的问题。
针对这个问题,服务端如果只 bind 了 IP 地址...
2023-02-22 00:00:00 |
Net
-
NET 网络专题汇总-06-20-TCP 和 UDP 可以使用同一个端口吗?
问题
之前有读者在字节面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗?
关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题:
多个 TCP 服务进程可以同时绑定同一个端口吗?
重启 TCP 服务进程时,为什么会出现“Address in use”的报错信息?又该怎么避免?
客户端的端口可以重复使用吗?...
2023-02-22 00:00:00 |
Net