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

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

开发者学堂课程【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 </title>

<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

相关文章
|
3月前
|
数据采集 Python
请求头处理
【8月更文挑战第9天】
44 4
|
4月前
|
缓存 Java UED
使用response.setHeader设置响应头
使用response.setHeader设置响应头
|
6月前
|
数据采集 API
请解释什么是 HTTP 请求头,以及在爬虫中为什么要设置请求头?
请解释什么是 HTTP 请求头,以及在爬虫中为什么要设置请求头?
196 2
|
6月前
|
JSON 缓存 JavaScript
常见请求头与响应头你了解哪些?
常见请求头与响应头你了解哪些?
|
缓存 JSON 前端开发
什么是请求头?常见的请求头有哪些?
请求头(Request Headers)是在HTTP协议中用于传递关于请求的额外信息的部分。它包含了客户端(通常是浏览器或应用程序)与服务器之间进行通信所需的元数据
5889 1
|
JSON JavaScript 前端开发
如何处理跨域请求:JSONP、CORS 和代理服务器
处理跨域请求是前端开发中的常见挑战,因为浏览器的同源策略限制了在不同域名、协议或端口之间进行直接通信。为了解决跨域请求的问题,可以使用以下三种常见的方法:JSONP、CORS和代理服务器。
452 0
|
缓存 前端开发 Java
常用响应头介绍| 学习笔记
快速学习常用响应头介绍,介绍了 常用响应头介绍系统机制, 以及在实际应用过程中如何使用。
常用响应头介绍| 学习笔记
|
Web App开发 iOS开发 开发者
HTTP 请求头 | 学习笔记
快速学习 HTTP 请求头
HTTP 请求头 | 学习笔记
|
存储 缓存 安全
HTTP1.1响应头中最有用的部分
HTTP1.1响应头中最有用的部分
70 0
|
Java 应用服务中间件 开发者
个别请求头介绍| 学习笔记
快速学习个别请求头介绍,介绍了个别请求头介绍系统机制, 以及在实际应用过程中如何使用。