http常见面试题

1. 说一下http和https的区别

1) https协议要申请证书,需要一定经济成本;

2) http是明文传输,https是加密的安全传输;

3) 连接的端口不一样,http是80,https是443;

4) http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。也因为增加了SSL,所以使用https协议会使页面的加载时间比http协议延长。

 

2. HTTP协议是无状态的/无连接的到底指的是什么?

就是每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的。它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况,因此我们才需要cookie和session。

 

3. 说一下cookie和session。

HTTP 是无状态协议,说明它无法根据之前的状态进行本次的请求处理。这样会导致很多麻烦,如:我们登录淘宝的时候首先要登录,我们看到了一个商品点进去,进行了页面跳转,那么按照HTTP的无状态协议岂不是又要登录一次?

所以为了解决这个问题,Cookie诞生了,Cookie 技术通过在请求和响应报文中写入Cookie 信息来控制客户端的状态。

原理:

Cookie 会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie 值后发送出去。服务器端发现客户端发送过来的Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

第一次,没有Cookie信息状态下的请求

http常见面试题

 

 

 

第2次以后(存有Cookie信息状态)的请求

http常见面试题

 

 

 

Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。鉴于HTTP 是无状态协议,即无法实现状态管理,因此当该用户下一次继续访问,也无法区分他与其他的用户,于是我们会使用Cookie 来管理Session。

http常见面试题

 

 

 Session 管理及Cookie 状态管理

  • 步骤一:客户端把用户ID 和密码等登录信息放入报文的实体部分,通常是以POST 方法把请求发送给服务器。
  • 步骤二:服务器会发放用以识别用户的Session ID。通过验证从客户端发送过来的登录信息进行身份认证,然后把用户的认证状态与Session ID 绑定后记录在服务器端。
  • 步骤三:客户端接收到从服务器端发来的Session ID 后,会将其作为Cookie 保存在本地。下次向服务器发送请求时,浏览器会自动发送Cookie,所以Session ID 也随之发送到服务器。服务器端可通过验证接收到的Session ID 识别用户和其认证状态。

 

 

 

http常见面试题

上一篇:HTTP协议简介


下一篇:Css边框渐变颜色