图解HTTP_2

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站点。
  • 通信数据转发程序:代理、网关、隧道

    • 代理:
      代理是一种有转发功能的应用程序,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。

    • 网关:
      网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就会像自己拥有自愿的源服务器一样对请求进行处理。

    • 隧道:
      隧道是在相隔很远的客户端和服务器之间进行中转,并保持双方通信连接的应用程序。

  • 保存资源的缓存

    • 缓存是指代理服务器或客户端本地磁盘内保存的资源副本。

猜你喜欢

转载自blog.csdn.net/cclethe/article/details/80112807