# DNS
Domain Name System
# 域名资源记录
记录类型 | 含义 |
---|---|
SOA:(StartOf Authority, 起始授权记录) | ⼀个区域解析库有且只能有⼀个SOA记录,⽽且必须放在第⼀条 |
A记录(主机记录) | ⽤于名称解析的重要记录,将特定的主机名映射到对应主机的IP地址上 |
CNAME记录(别名记录) | ⽤于返回另⼀个域名,即当前查询的域名是另⼀个域名的跳转, 主要⽤于域名的内部跳转,为服务器配置提供灵活性 |
NS记录(域名服务器记录) | ⽤于返回保存下⼀级域名信息的服务器地址。该记录只能设置为域名,不能设置为IP地址。 |
MX(邮件记录) | ⽤于返回接收电⼦邮件的服务器地址 |
IPv6主机记录(AAAA记录) | 与A记录对应,⽤于将特定的主机名映射到⼀个主机的IPv6地址。 |
# HTTP
- HTTP是超文本传输协议,从www服务器传输到本地浏览器的一种传输协议,网站是基于HTTP协议的。
- HTTP协议是由从客户端到服务器的请求Request和从服务器到客户端的响应Response进行约束和规范。
- HTTP默认端口为80; HTTPS默认端口为443
# HTTP工作过程
一次HTTP操作为一个事务,其工作过程可分为四步:
- 建立连接(连接的建立和断开都在TCP)
- 客户端发送请求
- 服务器响应请求
- 断开连接(释放资源,如端口资源)
# 请求
- 请求行(回车换行\r\n)
- 请求方法
- 请求路径
- 协议及版本
- 请求部首(回车换行\r\n)
(回车换行\r\n)
- 请求体(请求正文)
# 响应
- 状态行(回车换行\r\n)
- 协议及版本
- 状态码
- 状态描述
- 响应部首(回车换行\r\n)
(回车换行\r\n)
- 响应体(响应正文)
# 请求方法
请求方法 | 描述 |
---|---|
GET | 通常⽤于请求服务器发送某些资源 |
HEAD | 请求资源的头部信息,并且这些头部与 HTTP GET ⽅法请求时返回的⼀致。该请求⽅法的⼀个使⽤场景是在下载⼀个⼤⽂件前先获取其⼤⼩再决定是否要下载,以此可以节约带宽资源 |
OPTIONS | ⽤于获取⽬的资源所⽀持的通信选项 |
POST | 发送数据给服务器 |
PUT | ⽤于新增资源或者使⽤请求中的有效负载替换⽬标资源的表现形式 |
DELETE | ⽤于删除指定的资源 |
PATCH | ⽤于对资源进⾏部分修改 |
TRACE | 回显服务器收到的请求,主要⽤于测试或诊断 |
CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道⽅式的代理服务器 |
# HTTP状态码
- 1**
- 2** 成功
- 200: OK
- 3** 重定向
- 301: 永久重定向
- 302: 临时重定向
- 304: 资源未更改
- 4** 客户端错误
- 401: 没有权限
- 404: 资源未找到
- 5** 服务端错误
- 500: 服务端内部错误
# OSI模型与TCP/IP模型
OSI | TCP/IP |
---|---|
应用层 | 应用层 |
表示层 | |
会话层 | |
传输层 | 传输层 |
网络层 | 网络层 |
数据链路层 | 网络接口层 |
物理层 |
OSI | TCP/IP协议族 | 功能 |
---|---|---|
应用层 | HTTP,FTP,TFTP,SNMP,SMTP,DNS,Telnet | 文件传输,电子邮件,文件服务,虚拟终端 |
表示层 | 没有协议 | 数据格式化,代码转换,数据加密 |
会话层 | 没有协议 | 解除或建立与别的节点的联系 |
传输层 | TCP,UDP | 提供端对端的接口 |
网络层 | IP,ICMP,RIP,OSPF,BGP,IGMP | 为数据包选择路由 |
数据链路层 | SLIP,CSLIP,PPP,ARP,RARP,MTU | 传输有地址的帧以及错误检测功能 |
物理层 | ISO2110,IEEE802,IEEE802.2 | 以二进制数据形式在物理媒体上传输数据 |

# TCP三次握手与四次挥手



# IP
IP (Internet Protocol)即互联网协议。IP 现在通用的版本是 IPv4 ,地址是4个 byte 的数字,用点分开(0.0.0.0 ~ 255.255.255.255);正在实施的 IPv6地址会复杂很多。每个机器的网卡都有一个 IP 地址。IP 地址又分内网和外网地址,只有外网地址才能用来外网通讯
# Port
Port 端口和 IP 地址一起,可以唯一的确定一个网络连接的目的地。计算机的端口是用无符号的 16 个 bit 表示的,所以端口的范围是0 ~ 65535
# Socket
Socket 套接字。连到什么机器的什么端口,建立这个连接就叫做建立 Socket 连接。Socket 包含本地的 (IP 地址 + 端口)以及远程的(IP 地址 + 端口)