1.OSI七层模型
- 物理层(光纤)
- 数据链路层(网桥、交换器)
- 网络层(路由器)
- 传输层(防火墙)
- 会话层(管理会话)
- 表示层(数据)
- 应用层(网关)
2.TCP/IP的分层
- 链路层(光纤)
- 网络层(数据包、IP)
- 传输层(TCP和UDP)
- 应用层(FTP、DNS)
3.确保可靠性的TCP协议
三次握手建立一个连接:
- 发送端(c)发给接收端(s)一个标有SYN的数据包,确保c的发送能力和s的接受能力没有问题;
- s收到后发给c一个标有SYN/ACK的数据包,确保c得出c和s的接收和发送能力都没有问题;
- c收到后发给s标有ACK的数据包,确保s得出c和s的接收和发送能力都没有问题。
四次挥手关闭一个连接:
- c接收到所有的数据后发给s一个FIN数据包;
- s收到后发给c一个ACK数据包,并进入close_wait状态;
- s进入close_wait状态后发给c一个FIN数据包;
- c收到后确认发送标有ACK的数据包给s,c进入time_wait状态,s收到后进入close
4.HTTP状态码
2XX 表示请求被正常处理
- 200 OK
- 204 No Content 请求处理成功,但没有资源可以返回
- 206 Partical Content 对资源的一部分请求
3XX 重定向
- 301 永久性重定向
- 302 临时性重定向
- 303 与302相同但应当使用GET
- 304 资源已找到,但未符合条件请求
4XX 客户端错误
- 400 Bad Request存在语法错误
- 401 Unauthorized通过HTTP认证
- 403 Forbidden不允许访问资源
- 404 Not Found
5XX 服务器错误
- 500 Internal Server Error内部资源发生错误
- 503 Service Unavailable服务器正忙
5.HTTP首部字段
通用首部字段(9个)
Cache-Control 控制缓存的行为
Connection 逐跳首部、连接的管理
Date 创建报文的日期时间
Program 报文指令
Trailer 报文末端的首部一览
Transfer-Encoding 指定报文主体的传输编码方式
Upgrade 升级为其他协议
Via 代理服务器的相关信息
Warning 错误通知
请求首部字段(19个)
- Accept 用户代理可处理的媒体类型
- Accept-Charset 优先的字符集
- Accept-Encoding 优先的内容编码
- Accept-Language 优先的语言(自然语言)
- Authorization Web认证信息
- Expect 期待服务器的特定行为
- From 用户的电子邮箱地址
- Host 请求资源所在的服务器
- If-Match 比较实体标记(ETag)
- If-Modified-Since 比较资源的更新时间
- If-None-Match 比较实体标记(与If-Match相反)
- If-Range 资源未更新时发送实体Byte的范围请求
- If-Unmodified-Since 比较资源的更新时间(与If-Modified-Since相反)
- Max-Forwards 最大传输逐跳数
- Proxy-Authorization 代理服务器要求客户端的认证信息
- Range 实体的字节范围请求
- Referer 对请求中的URI的原始获取方
- TE 传输编码的优先级
- User-Agent HTTP客户端程序的信息
响应首部字段(9个)
- 首部字段名 说明
- Accept-Ranges 是否接受字节范围请求
- Age 推算资源创建经过时间
- ETag 资源的匹配信息
- Location 令客户端重定向至指定URI
- Proxy-Authenticate 代理服务器对客户端的认证信息
- Retry-After 对再次发起请求的时机要求
- Server HTTP服务器的安装信息
- Vary 代理服务器缓存的管理信息
- WWW-Authenticate 服务器对客户端的认证信息
实体首部字段(10个)
- Allow 资源可支持的HTTP方法
- Content-Encoding 实体主体试用的编码方式
- Content-Language 实体主体的自然语言
- Content-Length 实体主体的大小(单位:字节)
- Content-Location 替换对应资源的URI
- Content-MD5 实体主体的报文摘要
- Content-Range 实体主体的位置范围
- Content-Type 实体主体的媒体类型
- Expires 实体主体过期的日期时间
- Last-Modified 资源的最后修改日期时间