跳到主要内容

题目 46 - 题目 50

Session:

  • 定义:Session 是在服务端保存的一个数据结构,用于跟踪用户的状态。
  • 存储位置:Session 可以保存在服务端的内存、数据库或文件中。
  • 集群处理:在集群环境中,Session 服务器集群用于保存用户会话,通常使用内存中的缓存服务来存储 Session 信息。

Cookie:

  • 定义:Cookie 是客户端保存用户信息的一种机制,用来记录用户的一些信息,如登录状态、偏好设置等。
  • 实现 Session 跟踪:Cookie 通常用于实现 Session 跟踪,服务端在创建 Session 时会在 HTTP 协议中告诉客户端在 Cookie 中记录一个 Session ID。
  • 客户端禁用 Cookie:如果客户端禁用了 Cookie,可以使用 URL 重写技术,通过在 URL 后面添加参数(如 sid=xxxxx)来识别用户。
  • 用户体验:Cookie 也可以用来存储登录信息,以便用户下次访问时无需再次输入账号

47.即时通讯的实现:短轮询、长轮询、SSE 和 WebSocket 间的区别?​

1.短轮询:​

  • 基本思路:客户端定期向服务器发送 HTTP 请求,服务器无论是否有数据更新都直接响应。
  • 优点:简单易理解。
  • 缺点:频繁的 HTTP 请求浪费资源,服务器压力大。

2.长轮询:​

  • 基本思路:客户端发起请求后,服务器先挂起请求,判断数据是否有更新。如果有更新则响应,否则在一定时间后返回。
  • 优点:减少不必要的 HTTP 请求次数。
  • 缺点:连接挂起也浪费资源。

3.SSE(Server-Sent Events):​

  • 基本思想:服务器使用流信息向客户端推送信息,基于 HTTP 协议,客户端不会关闭连接,持续等待服务器推送的新数据。
  • 优点:不需要建立过多 HTTP 请求。
  • 缺点:浏览器兼容性有限,目前 IE/Edge 不支持。

4.WebSocket:​

  • 基本思想:服务器可以主动向客户端推送信息,全双工通信,通信双方可以相互发送消息。
  • 优点:高性能,资源利用率高。
  • 缺点:服务器端配置复杂。

性能上,WebSocket > SSE > 长轮询 > 短轮询。但考虑到浏览器兼容性,顺序可能相反。选择哪种通信方式取决于具体的使用场景和需求。

47.HTTP 1.0 和 HTTP 1.1 之间有哪些区别?​

1、连接管理:

  • HTTP 1.0:非持久连接,每个请求后连接断开。
  • HTTP 1.1:持久连接,多个请求共享一个连接,提高效率。

2、 资源请求:

  • HTTP 1.0:不支持断点续传。
  • HTTP 1.1:支持断点续传,通过 Range 头域。

3、缓存控制:

  • HTTP 1.0:使用 If-Modified-Since 和 Expires。
  • HTTP 1.1:增加 ETag、If-Unmodified-Since、If-Match、If-None-Match 等。

4、主机名(Host)字段:

  • HTTP 1.0:URL 不包含主机名,假设每个服务器有唯一 IP。
  • HTTP 1.1:URL 包含主机名,支持虚拟主机。

5、请求方法:

  • HTTP 1.1:新增 PUT、HEAD、OPTIONS 等方法。

48.options 请求方法及使用场景​

OPTIONS 请求方法的主要用途有两个:

  • 获取服务器支持的所有 HTTP 请求方法;
  • 用来检查访问权限。例如:JS 的 XMLHttpRequest 对象进行 CORS 跨域资源共享时,对于复杂请求,就是使用 OPTIONS 方法发送嗅探请求,以判断是否有对指定资源的访问权限。

49.HTTP Request Header 和 Response Header 里面分别都有哪些比较重要的字段​

HTTP Request Header

  1. Host:目标服务器的域名或 IP 地址。
  2. User-Agent:客户端(如浏览器)的标识信息。
  3. Accept:客户端可接受的响应内容类型。
  4. Content-Type(仅 POST/PUT):请求体的数据类型。
  5. Content-Length(仅 POST/PUT):请求体的长度。
  6. Cookie:服务器之前设置的 cookie 信息。
  7. Authorization:身份验证信息。
  8. Referer:请求来源的 URL。

HTTP Response Header

  1. Content-Type:响应体的媒体类型。
  2. Content-Length:响应体的长度。
  3. Cache-Control:缓存控制策略。
  4. Expires:响应内容过期时间。
  5. Content-Encoding:响应体的压缩编码方式。
  6. Set-Cookie:在客户端设置新的 cookie。
  7. Location:重定向的目标 URL。
  8. Access-Control-Allow-Origin:允许跨域请求的来源。
  9. ETag:资源的唯一标识,用于缓存验证。

50.URI、URL、URN 分别是什么?​

  1. URI:统一资源标志符(Universal Resource Identifier)是一个广义的概念,它用于唯一标识互联网上的资源。URI 可以是 URL、URN 或其他形式,如 mailto:或 news:。
  2. URL:统一资源定位符(Universal Resource Locator)是 URI 的一个子集,它提供了一种具体的访问网络资源的方法,包括协议(如 http://)、域名或 IP 地址以及路径。URL 类似于现实世界的住址,它告诉你在互联网上如何找到特定的资源。
  3. URN:统一资源名称(Universal Resource Name)也是 URI 的一个子集,它标识资源的名字,但不提供访问资源的方式。URN 通常用于命名空间中的名称,如电子邮件地址(mailto:)或文件系统路径(file:///)。
Loading Comments...