计算机网络和HTTP协议——http基础

1、HTTP 报文

HTTP 报文大体可分为报文首部和报文主体两块。二者由最初出现的 空行(CR+LF)来划分。一般,并不必定要有报文主体。 浏览器

(一) 请求报文

由请求行(请求方法、请求 URI、协议版本),可选的请求首部字段(通用首部、请求首部、响应首部和实体首部)和内容实体构成。 缓存

(二) 响应报文

由协议版本、状态码(包含代表响应结果的状态码,缘由短语和 HTTP 版本)、可选的响应首部字段以及实体主体构成。安全

2、HTTP 状态码

(一) 状态码的类别

(二) 2XX 成功

2XX 的响应结果代表请求被正常处理了。bash

1. 200 OK

从客户端发来的请求在服务器端被正常处理了。服务器

2. 204 No Content

服务器接收的请求已成功处理,但在返回的响应报文中不含实体内容。ui

3. 206 Partial Content

客户端进行了范围请求,而服务器成功执行了这部分的 GET 请求。响应报文中包含由 Content-Range 指定范围的实体内容。加密

(三) 3XX 重定向

3XX 响应结果代表浏览器须要执行某些特殊的处理以正确处理请求。spa

1. 301 Moved Permanently

永久性重定向。请求的资源已被分配了新的 URI,之后应使用资源如今所指的 URI。3d

2. 302 Found

临时性重定向。请求的资源已被分配了新的 URI,但愿用户(本次)能使用新的 URI 访问。代理

3. 303 See Other

因为请求对应的资源存在着另外一个 URI,应使用 GET 方法定向获取请求的资源。

4. 304 Not Modified

客户端发送附带条件的请求时,服务器端容许请求访问资源,但未知足条件的状况。

(四) 4XX 客户端错误

4XX 的响应结果代表客户端是发生错误的缘由所在。

1. 400 Bad Request

请求报文中存在语法错误。

2. 401 Unauthorized

发送的请求须要有经过 HTTP 认证(BASIC 认证、 DIGEST 认证)的认证信息。

3. 403 Forbidden

状态码代表对请求资源的访问被服务器拒绝了。

4. 404 Not Found

服务器上没法找到请求的资源。

(五) 5XX 服务器错误

5XX 的响应结果代表服务器自己发生错误。

1. 500 Internal Server Error

该状态码代表服务器端在执行请求时发生了错误。

2. 503 Service Unavailable

该状态码代表服务器暂时处于超负载或正在进行停机维护,如今没法处理请求。

3、HTTP 首部

HTTP 首部字段根据实际用途被分为如下 4 种类型。

  1. 通用首部字段:请求报文和响应报文两方都会使用的首部。
  2. 请求首部字段:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、响应内容相关优先级等信息。
  3. 响应首部字段:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息。
  4. 实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。

(一) 首部字段一览

1. 通用首部字段

2. 请求首部字段

3. 响应首部字段

4. 实体首部字段

(二) 通用首部

1. Cache-Control

经过指定首部字段 Cache-Control 的指令,就能操做缓存的工做机制。

Cache-Control: private, max-age=0, no-cache
复制代码

1.1 缓存请求指令

1.2 缓存响应指令

2. Cache-Control

  • 控制再也不转发给代理的首部字段
Connection: 再也不转发的首部字段名
复制代码
  • 管理持久链接
Connection: close / keep-alive
复制代码

3. Date

建立 HTTP 报文的日期和时间。

(三) 请求首部

(四) 响应首部

(五) 实体首部

(六) 为 Cookie 服务的首部字段

1. Set-Cookie

2. Set-Cookie

Cookie: status=enable
复制代码

4、HTTPS

(一) HTTP 的缺点

  1. 通讯使用明文(不加密),内容可能会被窃听。
  2. 不验证通讯方的身份,所以有可能遭遇假装。
  3. 没法证实报文的完整性,因此有可能已遭篡改。

(二) HTTPS = HTTP+ 加密 + 认证 + 完整性保护

  1. 经过和 SSL(Secure Socket Layer,安全套接层)或 TLS(Transport Layer Security,安全层传输协议)的组合使用, 加密 HTTP 的通讯内容。
  2. 虽然使用 HTTP 协议没法肯定通讯方,但若是使用 SSL 则能够。SSL 不只提供加密处理,并且还使用了一种被称为证书的手段,可用于肯定方。 证书由值得信任的第三方机构颁发,用以证实服务器和客户端是 实际存在的。另外,伪造证书从技术角度来讲是异常困难的一件 事。因此只要可以确认通讯方(服务器或客户端)持有的证书,便可判断通讯方的真实意图。
  3. SSL 提供认证和加密处理及摘要功能。
相关文章
相关标签/搜索