HTTP请求以及缓存

HTTP的定义:

hypertext transfer protocol超文本传输协议,是一个应用层的协议,是在互联网中传输数据的一个规定,是万维网中数据传输的基础

报文:服务器与浏览器之间传输数据的格式
组成:
1)对报文进行描述的起始行
2)包含属性的首部块
3)可选的包含数据的主体部分

01 HTTP的请求与响应

  • HTTP请求:
POST / HTTP1.1 
Host:www.wrox.com 
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022) 
Content-Type:application/x-www-form-urlencoded 
Content-Length:40 Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley 

第⼀部分:请求⾏,第⼀⾏说明是post请求,以及http1.1版本。
第⼆部分:请求头部,第⼆⾏⾄第六⾏。
第三部分:空⾏,第七⾏的空⾏。
第四部分:请求数据,第⼋⾏。

  • 服务器处理请求并返回HTTP报⽂
    后端处理返回http报⽂如下:
HTTP/1.1 200 OK Date: Fri, 22 May 2009 06:07:21 GMT 
Content-Type: text/html; charset=UTF-8

<html>
  <head></head> 
  <body>
     <!--body goes here-->
  </body> 
</html>

第⼀⾏为状态⾏,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
第⼆⾏和第三⾏为消息报头, Date:⽣成响应的⽇期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是 UTF-8
第三部分:空⾏,消息报头后⾯的空⾏是必须的
第四部分:响应正⽂,服务器返回给客户端的⽂本信息。 空⾏后⾯的html部分为响应正⽂。

02 HTTP的缓存

关于ETag、CacheControl、Expires 的异同

ETag 是通过对比浏览器和服务器资源的特征值(如MD5)来决定是否要发送文件内容,如果一样就只发送 304(not modified)
Expires 是设置过期时间(绝对时间),但是如果用户的本地时间错乱了,可能会有问题
CacheControl: max-age=3600 是设置过期时长(相对时间),跟本地时间无关。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容