HTTP报文内的HTTP信息
- HTTP报文本身是由多行(用CR+LF作换行符)数据构成的字符串文本。
- HTTP报文大致可以分为报文首部和报文主体两块。两者由最初的空行(CR+LF)来划分。通常,并不一定要有报文主体。
- 请求报文首部由:请求行,请求首部字段,通用首部字段,实体首部字段和其他组成。
- 响应报文首部由:状态行,响应首部字段,通用首部字段,实体首部字段和其他组成。
- 请求行
包含用于请求的方法,请求URI和HTTP版本 - 状态行
包含表明响应结果的状态码,原因短语和HTTP版本 - 首部字段
包含表示请求和响应的各种条件和属性的各类首部。一般有4中首部,分别是:通用首部、请求首部、响应首部和实体首部。 - 其他
可能包含HTTP的RFC里未定义的首部(Cookie等)
返回结果的HTTP状态码
- 状态码的职责是当客户端向服务器发送请求时,描述返回的请求结果。
- 状态码以3位数字和原因短语组成。数字中的第一位指定了响应类别,后两位无分类,响应类别有以下5钟:
数字 | 类别 | 原因短语 |
---|---|---|
1XX | Informational(信息性状态码) | 接收的请求正在处理 |
2XX | Success(成功状态码) | 请求正常处理完毕 |
3XX | Redirection(重定向) | 需要进行附加操作以完成请求 |
4XX | Client Error(客户端错误代码) | 服务器无法处理请求 |
5XX | Server Error(服务器错误状态码) | 服务器处理请求出错 |
与HTTP协作的Web服务器
用单台虚拟主机实现多个域名
- HTTP/1.1 规范允许一台HTTP服务器搭建多个Web站点。
通信数据转发程序:代理、网关、隧道
代理:
代理是一种有转发功能的应用程序,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。网关:
网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就会像自己拥有自愿的源服务器一样对请求进行处理。隧道:
隧道是在相隔很远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序。
保存资源的缓存
- 缓存是指代理服务器或客户端本地磁盘内保存的资源副本。