HTTP回顾3

HTTP报文

用于HTTP协议交互的信息被称为HTTP报文,HTTP报文是由多行数据构成的字符串文本,其中,CR+LF用作换行。CR: Carriage Return,回车符,0x0d。LF: Line Feed,换行符, 0x0a。

报文结构

通常来说都是报文首部、报文主体构成。对于请求报文来说,其报文首部由请求行、请求首部字段、通用首部字段、实体首部字段和其他字段。相应报文由状态行、响应首部字段、通用首部字段、实体首部字段和其他字段组成。具体就不列举例子了。

  • 请求行:包含用于请求的方法、URI和HTTP版本
  • 状态行: 表明响应结果的状态码,原因短语,HTTP版本
  • 首部字段: 请求和响应的各种条件和属性
  • 其他: 可能包含RFC里未定义的首部,例如Cookie等。

报文主题和实体主体

报文: HTTP通信中的基本单位,由8位字节流组成
实体:作为请求或响应的有效载荷数据,其内容由实体首部和实体主体组成

压缩编码

gzip(GNU zip)、compress、deflate(zlib)、identity(不进行编码)

分割传送

传送大容量数据时,通过将数据分割,能够让浏览器逐步显示界面,这种编码方式被称为分块传输编码(Chunked Transfer Coding)

发送多种数据

multipart/form-data:表单上传时使用,需要注意的是boundaryConten-Type字段以及最后的结束标志
multipart/byteranges:可指定请求的Content-Range用来获取部分内容

内容协商

客户端和服务端对响应的资源内容进行交涉,进而提供给服务端最合适的资源。一个例子就是不同语言的网站的不同显示内容。

  • Accept
  • Accept-Charset
  • Accept-Encoding
  • Accept-Language
  • Content-Language

你可能感兴趣的:(HTTP回顾3)