2

HTTP

  1. 支持客户/服务器模式。
  2. 简单快速,方法和路径。
  3. 灵活,允许传输任意类型的数据对象。
  4. 无连接,每次连接只处理一个请求。
  5. 无状态协议。

请求/响应的步骤

  1. 客户端和Web服务器(默认80端口)建立TCP连接。
  2. 通过TCP连接,客户端发送HTTP请求。
  3. 服务器接收请求并返回HTTP响应。
  4. 释放TCP连接。如果connectionclose,则服务器主动关闭TCP连接,客户端被动关闭。如果是keep-alive,表示持久连接,该连接还可以被其他HTTP请求复用,直到客户端或服务器认为连接已经结束,其中一方中断连接。
  5. 客户端浏览器解析HTML内容。

在浏览器地址栏键入URL,按下回车之后经历的流程

  1. 浏览器根据URL中的域名进行DNS 解析,以获取相关服务器的IP地址。DNS缓存依次查询浏览器缓存、操作系统缓存、路由器缓存、ISP缓存、根域名服务器缓存、顶级域名服务器缓存。
  2. 客户端根据查询到的IP地址加端口,(HTTP默认80HTTPS默认443),和服务器建立TCP连接。三次握手详细介绍。
  3. 浏览器发送HTTP请求。
  4. 服务器处理请求并返回HTTP响应报文。
  5. 浏览器解析渲染页面。
  6. 释放TCP连接。

HTTP状态码

1xx:表示请求已接受,继续处理。

2xx:成功,表示请求已经被成功。

3xx:重定向,要完成请求必须进行更进一步的操作。

4xx:客户端错误。

5xx:服务器错误。

GET请求和POST请求的区别

是浏览器和服务器通过HTTP协议进行交互的两种方法:

  1. HTTP报文层面:GET将请求信息放在URL中,POST将请求信息放在请求体中。虽然HTTP协议没有对URL长度进行限制,但是主流浏览器会限制URL的长度。
  2. REST规范中:GET请求进行查询操作,符合幂等性和安全性,POST用来进行数据存储,不符合。
  3. 因为幂等性,GET请求可以被缓存,而POST不行。

Session

服务器端的机制,在服务器上保存的信息。

解析客户端请求并操作session id,按需保存状态信息。

  1. 使用Cookie方式实现
  2. 使用URL回写来实现

服务器响应返回JSESSIONID=XXXXX,无论哪种,核心都是JSESSIONID,是Tomcat 为我们自动匹配的(根据JSESSIONID找服务器的SESSION)。

Cookie和Session的区别

  1. cookie数据存放在客户的浏览器上,session数据存放在服务器上。
  2. 因为存储位置的差异,所以在服务器端的session更加安全。
  3. 但是大量数据存在session里会给服务器带来负担,所以应适当使用cookie

HTTPS

clipboard.png

SSL

为网络通信提供安全及数据完整性的一种安全协议。

是操作系统对外的APISSL 3.0后更名为TLS

采用身份验证和数据加密保证网络通信的安全和数据的完整性。

HTTP和HTTPS的区别

  1. HTTPS需要申请CA证书,HTTP不需要。
  2. HTTPS是密文传输的,HTTP明文传输。
  3. HTTPS默认使用443端口,HTTP默认使用80端口。
  4. HTTPS = HTTP + SSL

流程

因为非对称加密成本较高,所以将密钥使用非对称加密进行传输,而通信过程中使用传输的密钥进行对称加密。

clipboard.png


张喜硕
2.1k 声望423 粉丝

浅梦辄止,书墨未浓。