7.1 Keep-Alive 头
还有一些更有用的标题。Keep-Alive标头告诉服务器保持连接打开:服务器不会在发送响应后立即关闭连接。这将导致同一客户端对服务器的下一次请求更快地完成。
这种标头的示例:
Connection: Keep-Alive
但如果所有客户端都需要永久连接,那么问题就会从服务器端开始。服务器将不可用或开始自行关闭连接。
7.2 缓存控制头
Cache-Control标头可用于控制内容缓存。正确配置的缓存可以加快内容的处理速度,配置不当的缓存会突然产生问题。
要禁用缓存,您需要编写以下标头:
Cache-Control: no-cache, no-store, must-revalidate
缓存中不应存储任何内容——既不是来自客户端请求,也不是来自服务器响应。请求总是发送到服务器,响应总是被完全下载。
您还可以启用最原始和最可靠的缓存类型:
Cache-Control: no-cache
在发出副本之前,缓存会查询源服务器以查看资源是否是最新的。
您可以以秒为单位指定资源缓存时间。标题将如下所示:
Cache-Control: max-age=31536000
此标头指定内容的最长缓存时间。
7.3 饼干
服务器可以在客户端存储数据。此类数据称为cookie。但是,客户端也可以存储 cookie。他们对双方都非常有帮助。
例如,您访问该站点,并且您已获得该站点的授权。即你上次登录时,服务器命令浏览器存储某个用户登录成功的信息。
这是 Cookie 在请求中的样子:
Cookie: name=value;name2=value2;nameN=valueN00
Cookie 通常由浏览器存储,并且与特定域相关联。当您再次访问同一个域时,cookie 会自动添加到 http 请求和 http 响应中。服务器/域无法接收由另一个服务器/域存储在浏览器中的 cookie。
每个 cookie 有 4 个主要参数:
- 姓名;
- 意义;
- 有效期(保存多长时间);
- cookie 绑定的域。
Cookies是以文本形式存储和传输的,所以name和value都是字符串。如果未指定 cookie 过期时间,则它们会在浏览器关闭后被销毁。
7.4届
用户登录站点后,他们说站点和服务器之间已经建立了会话。
服务器本身创建一个特殊对象 -HttpSession,
它存储所有必要的信息以与授权客户端一起工作。并且这个对象的唯一编号以Cookie的形式存储在浏览器中。
Java Web 服务器通常使用一个名称JSESSIONID
来存储会话 ID。它看起来像这样:
Cookie: JSESSIONID =ABAD1D
在服务器端,可以设置session的生存期,以及是否在浏览器关闭时自动关闭。
GO TO FULL VERSION