# 协议
# TCP/IP
TCP/IP 协议实际上是一系列网络通信协议的统称,其中 TCP、IP 是最核心的两个协议,其他的协议还有 UDP、ICMP、ARP 等,共同构成了一个复杂但是分工明确的协议栈。
这个协议有四层,应用层(HTTP)、传输层(TCP/UDP)、网络层(IP)、链路层(MAC)。
# 协议相关
- IP(Internet Protocol)协议,主要是用来解决寻址和路由的问题,以及如何在两点之间如何传输数据包。
IP 协议使用IP 地址来定位互联网中的每一台设备。
TIP
现在使用的 IP 协议版本大多数是 IPv4,例如"192.168.0.1",总共有 2^32 个,大约 42 亿个地址,现在又出现了 IPv6,总共有 2^128 个地址。
- TCP(Transmission Control Protocol),传输控制协议。位于 IP 协议之上,基于 IP 协议提供可靠、字节流形式的通信,是 HTTP 协议得以实现的基础。TCP 协议两端可以如同操作文件一样访问传输的数据,就像在读取密闭管道里的流动字节。
- 可靠是保证数据不丢失。
- 字节流是保证数据的完整性。
- HTTP 协议是传输协议,不关心寻址、路由、数据完整性等传输细节,这些工作都是交给网络中的 TCP/IP 来处理。
# DNS
应用层
。
在 TCP/IP 协议中,使用 IP 地址来标识设备,数字形式的地址对于计算机来说非常方便,但是对于人而言就不是那么方便。
DNS(Domain Name System)系统就是为了解决这个问题。用有意义的名字来代替 IP 地址。在 DNS 中,域名(Domain Name)又称为主机名(Host)。
域名使用"."分割成多个单词,级别从左到右逐渐升高,最右边称为顶级域名,比如com,cn,deu,gov等。
想要通过域名访问网站,必须要将域名转换到对应的 IP 地址,这就是域名解析。
# URI/URL
通过域名和 IP 地址,只是能够确保我们能够找到服务器,但是服务器上还有很多资源,服务器不知道接收到的请求具体想访问那一个资源。
URI(Uniform Resource Identity),统一资源标识符,就是用来标记互联网上的资源。
URL(Uniform Resource Location),统一资源定位符,是 URI 的常用表现形式。URL 通常由三部分组成,协议名称、主机名、路径。
- 协议名,访问当前资源使用的协议,比如HTTP,HTTPS。
- 主机名,可以是域名或者 IP 地址。
- 路径,资源在主机上的位置。
# HTTPS
运行在 SSL/TLS 上的 HTTP。SSL/TLS,负责加密通信的安全协议
。
SSL(Secure Socket Layer),网景公司发明,发展到 3.0 时被标准化,改名为 TLS(Transport Layer Security)。
# 代理
代理是 HTTP 协议中,请求/应答中的一个环节,作为中转站。可以转发客户端的请求,也可以转发服务端的响应(既是 web 服务器,又是 web 客户端)。代理服务器需要用 Via 标明代理的身份。
"Via: proxy1,proxy2",表示请求/响应,先经过了 proxy1 的代理,然后经过 proxy2 的代理,到了接收方。
via: http/1.1 xxx.com, http/1.1 yyy.com
# 协议/版本号 节点名 节点注释(可选)
# HTTP协议的时候可以省略,其他(HTTPS、FTP等)不能省略
通过 TRACE 请求,可以跟踪代理链传输的请求报文。 Max-Forward,设置最多的转发次数,为 0 时,接收者会直接返回 TRACE 报文。
# 1、常见代理
- 匿名代理,完全隐匿被代理的服务器,外界看到的只是代理服务器。
- 透明代理,传输过程中透明开放,外界知道代理,也知道客户端。
- 正向代理,靠近客户端,代表客户端向服务器发起请求(VPN)
- 反向代理,靠近服务器,代表服务器想客户端发起请求(NGINX 配置跨域)
# 2、代理作用
- 负载均衡,把访问均匀的分散到多台机器,实现访问集群化。
- 内容缓存,CDN 相关
- 安全防护,隐藏 IP,使用 WAF(?)等地域网络攻击,以及过载
- 数据处理,拦截数据,进行压缩、加密,或是按照一定策略修改请求和响应。
- 健康检查,某个后端服务器出现问题的时候,及时踢出集群。
- 过滤网站,限制内网请求等。
- 转码器,修改响应数据柱体等。GIF --> JPG,文本压缩。
# 3、如何设置代理
- 修改客户端,浏览器设置代理。
- 修改网络,路由器或其他中间设备进行代理。
- 修改 DNS,手动配置 host。
- 修改服务器,重定向。
# 网关(?)
代理
连接的是两个或多个使用相同协议的应用程序。网关连接的则是两个或多个使用不同协议的端点
,网关
扮演了协议转换的角色。又称协议转换器。
# ARP - Address Resolution Protocol
属于数据链路层,通过解析网络层地址来找寻数据链路层地址的网络传输协议。
TIP
DNS 是将域名解析为 IP 地址,ARP 是通过 IP 等信息,解析用户的 MAC 地址。
IP 是为了解决网络与网络之间的通信,MAC 地址则是为了找到相同子网下的目标设备。
# 1、工作流程
- 检查 ARP 缓存
- 发送 ARP 请求
- 添加 ARP 表项,收到方添加
- 发送 ARP 应答
- 添加 ARP 表项,发送方添加
← XSS 和 CSRF 分层 →