HTTP的请求流程
- 客户端在特定端口发起一个到服务器指定域名的TCP连接,该端口是HTTP默认端口。
- 客户端经它向服务端发送一个HTTP请求报文,报文包含了路径
- HTTP服务器接收请求报文,从存储器中检索出对象,在HTTP响应报文中封装对象,并发送给客户端
- 服务端通知TCP断开连接,客户端完整收到报文后,TCP实际中断
cookie
cookie的本质是服务端在接收客户端请求时,会为用户生成一个id。将id随着响应报文传回客户端。客户端后面的请求,将id带上。服务端就知道请求者的身份了。
DNS
真实的网络世界中,我们有很多服务器,它们IP地址不同,但可能存储着同样的内容。同时,企业希望用户能过不同的域名都能获取这个内容。如果我们的域名与IP进行一一对应,难免会造成各种麻烦。而DNS则是一个IP与域名的映射。根据请求服务器当前的状态,选择一个合适的服务器IP,让用户来访问。
DNS服务器的类型
- 根DNS服务器
- 顶级域(DNS)服务器
- 权威DNS服务器
- 本地DNS服务器
如果公司A客户端想要访问公司B的一个服务器,DNS查询需要经过:
- A主机 -> A本地DNS服务器
- A本地DNS -> 根服务器
- 根服务器 -> 顶级域(DNS)服务器
- 顶级域(DNS)服务器 -> 权威DNS服务器(B主机的)
- 权威DNS服务器 -> 顶级域(DNS)服务器
- 顶级域(DNS)服务器 -> 根服务器
- 根服务器 -> A本地DNS
- A本地DNS -> A主机
此时A主机,就拿到了B主机的IP,可以直接访问了。
DNS服务器会缓存着这些查询的结果。一定时间内,服务器范围内的主机再次查询就可以直接返回结果。那么这个“一定时间内”,究竟是谁来控制呢?
DNS记录
在DNS报文中,包含了一条或多条DNS资源记录。这些记录由4个字段构成:
- TTL 表示该记录的有效时间
- Type表示记录的类型
- Name和Value则根据Type有不同的含义
Type包括:A、NS、MX。它们的具体含义可以自行Google。
DNS 报文
分为:
- 首部区域
- 问题区域
- 回答区域
- 权威区域
- 附加信息
每个区域的详细说明,可以参照一位网友的博客:
https://blog.csdn.net/tianxuhong/article/details/74922454