HTTP 笔记

基本的浏览器连接处理
  1. 浏览器从URL中解析出服务器主机名
  2. 浏览器将服务器主机名转换为对应的IP地址
  3. 浏览器从URL中解析出端口号
  4. 浏览器建立一条与web服务器的TCP(传输控制协议)连接
  5. 浏览器向服务器发送一条HTTP请求报文
  6. 服务器向浏览器回送一条HTTP响应报文
  7. 关闭连接,浏览器像是文档
HTTP网络协议栈

HTTP 笔记

TCP

传输控制协议,规定了数据是如何从一个地方发送到另一个地方的。

TCP主要提供了

      1. 无差错的数据传输
      2. 按序传输(数据总是会按照发送时的顺序到达)
      3. 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)

只要建立了TCP连接,客户端和服务器端就之间的数据交换就不会丢失,不会错序。


web的结构组件

代理:位于客户端和服务器端之间的中间实体。接收客户端的所有HTTP请求,将这些请求转发给服务器(可能会修改请求)。

可以对请求或响应进行过滤(对下载的程序进行病毒检测,屏蔽一些黄暴的内容等)。

缓存

网关:通常用于将HTTP数据转换为其他其他的协议。

三次握手

为了准确无误的将数据送达,TCP协议采用了三次握手策略

HTTP 笔记

HTTP状态码

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等。

  类别 原因短语
1xx 信息性状态码    接收的请求正在处理    
2xx 成功状态码 请求正常处理完毕
3xx 重定向状态码 需要进行附加操作以完成请求
4xx 客户端错误状态码 服务器无法处理请求
5xx 服务器错误状态码 服务器处理请求出错
  • 200,OK,请求已正常处理
  • 204,请求已处理但没有资源可返回
  • 301,请求的资源已经被分配了新的URI
  • 302,临时重定向(请求的资源临时被分配了新的URI)
  • 401,发送的请求未经过认证(需要通过HTTP认证)
  • 403,不允许访问该资源
  • 404,没有请求的资源
  • 500,服务器端发生错误
  • 503,服务器处于超负载状态或正在停机维修,现在无法处理该请求

HTTP的不足(缺点)

  • 通信使用明文(不加密)可能被窃听或篡改
  • 不验证通信双发的身份,有可能遭遇伪装
HTTPS

HTTP协议中没有加密机制,但是可以通过和SSL(secure socket layer,安全套接层)或者TLS(安全传输层协议,transport layer security)的组合使用,加密HTTP的通信内容

使用SSL建立安全通信路线之后,就可以在这条线路上进行HTTP通信了。

与SSL组合使用的HTTP被称为HTTPS