你可能需要了解的HTTP

        • TCPIP分层
        • TCP协议
          • 如何保证可靠传输
        • HTTP报文
        • HTTP状态码
        • HTTP首部
        • HTTPS

TCP/IP分层

应用层 传输层 网络层 数据链路层
http协议位于 应用层
传输层有俩个性质不同的协议 TCP UDP ,传输层把从应用层处收到的数据(HTTP请求报文)进行分割,转发到网络层
网络层处理数据包

TCP协议

TCP位于传输层,提供可靠字节流服务
字节流服务是指,为了方便传输,将大块数据分割成以报文段位单位的数据包进行管理。
可靠是指能够把数据准确可靠的传给对方

如何保证可靠传输

首先先介绍一些基本的知识

TCP标志位
SYN(synchronous 建立联机)
ACK(acknowledgement 确认) 有俩个取值0、1。1表示应答有效,反之为0
PSH(push 发送)
FIN(finish 结束)
URG(urgent 紧急)
RST(reset 重置)

Sequence number(顺序号码)
Acknowledge number(确认号码)

TCP协议采用三次握手策略。

第一次握手 发送端首先发送一个带有 SYN 的数据包 发送端进入 SYN_SEND 状态,等待服务器确认
第二次握手 接收端收到后,回传一个带有 SYN/ACK 的数据包 服务端进入 SYN_RECV 状态
第三次握手 发送端再回传一个带 ACK 的数据包 发送端和服务端都进入 ESTABLISHED 状态 

HTTP报文

  1. 请求报文
    请求方法 请求URI 协议版本 状态行
    可选的请求首部字段 首部字段
    可选的内容实体 报文主体
  2. 响应报文
    协议版本 状态码 状态码解释 状态行
    可选的响应首部字段 首部字段
    可选的实体主体 报文主体

HTTP状态码

状态码是当客户端想服务端发送请求时,描述返回的请求结果。
状态码由3位数字表示。
数字中的第一位指定响应类别。

状态码 类型
1XX 信息性
2XX 成功
3XX 重定向
4XX 客户端错误
5XX 服务端错误

HTTP首部

  1. 通用首部字段
  2. 请求首部字段
  3. 响应首部字段
  4. 实体首部字段

只介绍常用几个
通用首部字段

cache-control 控制缓冲的行为

请求首部字段

accept 用户可处理的媒体类型
range 实体的字体范围请求 (可用于断点续传)
host 请求资源所在的服务器

实体首部字段

content-encoding 实体使用的编码方式
content-length 实体的大小 单位字节
content-type 实体的媒体类型

HTTPS

为什么要HTTPS

HTTP通信使用明文
HTTP通信不验证通信方的身份
HTTP通信无法证明报文的完整性

通过HTTP和SSL或者TLS组合使用,加密HTTP的通信内容





以上内容来自 图解HTTP

你可能感兴趣的:(面试整理)