常用响应头介绍| 学习笔记

简介: 快速学习常用响应头介绍,介绍了 常用响应头介绍系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【Java Web 开发-Web 应用、Tomcat、HTTP 请求与响应常用响应头介绍】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/575/detail/7966


常用响应头介绍

 

内容简介:

一、响应内容

二、响应码

三、其他响应头

四、HTML 中指定相应头

 

一、响应内容

1.响应协议的格式如下:

响应首行;

响应头信息;

空行;

响应体。 

2. 响应代码如下:

响应内容是由服务器发送给浏览器的内容,浏览器会根据响应内容来显示。

HTTP/1. 1 200 OK

Server: Apache-Coyote/1. 1

Content-Type:text/html;charset=UTF-8

Content-Length: 724

Set-Cookie:JSESSIONID=C97E2B4C55553EAB46079A4F263435A4; Path=/hello

Date: Wed, 25 Sep 2012 04: 15: 03 GMT)

<IDOCTYPEHTMLPUBUC"-//W3C//DTDHTML4.01Transitional//EN">

<html>

<head>

<base href="http: //localhost: 8080/hello/">

<title> My JSP 'index.jsp'starting page

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires"content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3>

<meta http-equiv="description" content="This is my page">

<!

<link rel="stylesheet"type="text/css"href="styles.css">

>

</head>

<body>

<form action=""method="post">

3.关键字:

<input type="text"name="keyword"/>

<input type="submit" value="提交"/>

</form>

</body>

</html>

4.解释

HTTP/1. 1 200 OK: 响应协议为 HTTP1. 1,状态码为200,表示请求成功,OK 是对状态码的解释;

Server:Apache-Coyote/1. 1: 服务器的版本信息;Content-Type:text/html;charset=UTF-8:响应体使用的编码为 UTF-8)

Content-Length:724:响应体为724字节;Set-Cookie:JSESSIONID=C97E2B4C55553EAB46079A4F263435A4;Path=/hello: 响应给客户端的 Cookie

Date:Wed,25 Sep 2012 04:15:03 GMT: 响应的时间,这可能会有8小时的时区


二、响应码

响应头对浏览器来说很重要,它说明了响应的真正含义。例如200表示响应成功了,302表示重定向,这说明浏览器需要再发一个新的请求。

200

请求成功,浏览器会把响应体内容(通常是 html )显示在浏览器中;

404:

请求的资源没有找到,说明客户端错误的请求了不存在的资源;

500:

请求资源找到了,但服务器内部出现了错误;

302:

重定向,当响应码为302时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头 Location ,它指定了新请求的 URL 地址;

304:当用户第一次请求 index.html 时,服务器会添加一个名为 Last-Modified 响应头,这个头说明了 index.html 的最后修改时间,浏览器会把 index.html 内容,以及最后响应时间缓存下来。当用户第二次请求 index.html 时,在请求中包含一个名为 If-Modified-Since 请求头,它的值就是第一次请求时服务器通过 Last-Modified 响应头发送给浏览器的值,即 index.html 最后的修改时间,If-Modified-Since 请求头就是在告诉服务器,这里浏览器缓存的 index.html 最后修改时间是这个,看看现在的index.html 最后修改时间是不是这个,如果还是,那么就不用再响应这个 index.html 内容了,我会把缓存的内容直接显示出来。

而服务器端会获取 If-Modified-Since 值,与 index.html 的当前最后修改时间比对,如果相同,服务器会发响应码304,表示 index.html 与浏览器上次缓存的相同,无需再次发送,浏览器可以显示自己的缓存页面,

如果比对不同,那么说明 index.html 已经做了修改,服务器会响应200

 image.png

浏览器第一次请求 index.html

浏览器缓存了 index.html 的内容:以及最后的修改时间

第一次响应:200包含响应头:Last-Modifiedindx.htal 文件的最后

浏览器緩存 index.htnl 内宴,以及最后修改时间。

服务器获取请求中的最后修改时间,与 index.html 当前的最后修改时间比较,发现相同,那公说明这段时间 index.html 没有修改过。

第二次请求 index.html 请求中包含了 If-Modif1ed-Since 头,内容是浏葱器缓存的Index.html 的最后修改时间

浏览器接收到304响应信息,直接从缓存中获取 Index.html 内容显示出来。

响应头:

Last-Modified: 最后的修改时间;

请求头:

If-Modified-Since: 把上次请求的 index.html 的最后修改时间还给服务器;状态码:304,比较 If-Modified-Since 的时间与文件真实的时间一样时,服务器会响应304,而且不会有响正文,表示浏览器缓存的就是最新版本!

 

三、其他响应头

告诉浏览器不要缓存的响应头:

Expires: -1;

Cathe-Control:no-cache;

Pragma:no-cache;

自动刷新响应头,浏览器会在3秒之后请求http://www.itcast.cn:

Refresh: 3;url=http: //www.itcast.cn

 

四、 HTML 中指定响应头

在 HTMI 页面中可以使用<meta http-equiv=""content="">来指定响应头

例如在 index.html 页面中给出<meta http-equiv="Refresh"content="3;url=http://www.itcast.cn">,表示浏览器只会显示 index.html 页面3秒,然后自动跳转到http://www.itcast.cn

相关文章
|
Java 应用服务中间件 Nacos
阿里巴巴NACOS(3)- 部署Nacos的生产集群环境
上一篇文章介绍了如何在Spring Cloud中使用Nacos,让我感觉是无缝支持Spring Cloud,可惜的是阿里云的MSE暂时只支持Nacos的服务注册和发现,配置中心还是需要用阿里云的ACM来完成,本文将介绍如何部署Nacos的生产集群环境。
14095 0
阿里巴巴NACOS(3)- 部署Nacos的生产集群环境
|
11月前
|
机器学习/深度学习 人工智能 运维
AI辅助的运维风险预测:智能运维新时代
AI辅助的运维风险预测:智能运维新时代
476 19
AI辅助的运维风险预测:智能运维新时代
|
9月前
|
存储 监控 安全
【亲测有用】数据中台数据安全管理能力演示
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
【亲测有用】数据中台数据安全管理能力演示
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
3990 0
【规范】Git分支管理,看看我司是咋整的
|
机器学习/深度学习 人工智能 算法
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
服装识别系统,本系统作为图像识别方面的一个典型应用,使用Python作为主要编程语言,并通过TensorFlow搭建ResNet50卷积神经算法网络模型,通过对18种不同的服装('黑色连衣裙', '黑色衬衫', '黑色鞋子', '黑色短裤', '蓝色连衣裙', '蓝色衬衫', '蓝色鞋子', '蓝色短裤', '棕色鞋子', '棕色短裤', '绿色衬衫', '绿色鞋子', '绿色短裤', '红色连衣裙', '红色鞋子', '白色连衣裙', '白色鞋子', '白色短裤')数据集进行训练,最后得到一个识别精度较高的H5格式模型文件,然后基于Django搭建Web网页端可视化操作界面,实现用户在界面中
682 1
【服装识别系统】图像识别+Python+人工智能+深度学习+算法模型+TensorFlow
|
Ubuntu 安全 网络协议
|
Java 测试技术 程序员
基于SpringBoot+Vue交流和分享平台的设计与实现(源码+部署说明+演示视频+源码介绍)(2)
基于SpringBoot+Vue交流和分享平台的设计与实现(源码+部署说明+演示视频+源码介绍)
331 1
|
存储 运维 监控
云端部署mes/万界星空科技云mes系统
万界星空科技MES制造执行系统,应用云上托管,提供云上自动部署和运维能力,解决手工部署效率低、错误率高、升级困难、业务中断、监控定位难等应用运维问题,适用于政企IT系统及互联网类应用。
327 1
|
存储 运维 监控
|
网络协议 PHP 网络虚拟化
BGP MPLS VPN(OPTION B)实验笔记
BGP MPLS VPN(OPTION B)实验笔记
342 0
BGP MPLS VPN(OPTION B)实验笔记