一、用户如何发起一个请求?
二、HTTP解析
1、常见的HTTP请求头
Accept-Charset :用于指定客户端接受的字符集
Accept-Encoding :用于指定可接受的内容编码
Accept-Language :用于指定一种自然语言,如Accept-Language:zh-cn
Host :用于指定被请求资源的internet主机和端口号
User-Agent :客户端将它的操作系统、浏览器和其他属性告诉服务器
Connection :当前连接是否保持,如Connection:Keep-Alive
2、常见的HTTP响应头
Server :使用的服务器名称
Content-Type :用来指明发送给接收者实体正文的媒体类型,如Content-Type:text/html;charset=GBK
Content-Encoding :与请求头Accept-Encoding对应,告诉浏览器服务端采用的是什么编码
Content-Language :与请求头Accept-Language对应,描述了响应资源所用的自然语言
Content-Length :指明实体正文的长度,用字节方式存储的十进制数字来表示
Keep-Alive :保持连接的时间
3、常见的HTTP状态码
200 :客户端请求成功
302 :临时跳转,跳转的地址通过Location指定
400 :客户端请求有语法错误,不能被服务器识别
403 :服务器收到请求,但是拒绝提供服务
404 :请求的资源不存在
500 :服务器发生不可预料的错误
4、浏览器的缓存机制
这是使用F5刷新页面的请求头,返回的是缓存数据
这是使用Ctrl+F5刷新页面的请求头,返回的是最新数据
使用Ctrl+F5刷新页面时,最重要的是在请求头中增加了两个请求项Pragma:no-cache和Cache-Control:no-cache,Cache-Control/Pragma这个HTTP Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,这个HTTP Head字段有一些可选值,如下所示:
Public :所有内容都将被缓存,在响应头中设置
Private :内容只缓存到私有服务器中,在响应头中设置
no-cache :所有内容都不会被缓存,在请求头和响应头中设置
no-store :所有内容都不会被缓存到缓存或Internet临时文件中,在响应头中设置
must-revalidation/proxy-revalidation :如果缓存的内容失效,请求必须发送到服务器/代理以进行重新验证,在请求头中设置
max-age=xxx :缓存的内容将在xxx秒后失效,这个选项只在HTTP1.1中可用,和Last-Modified一起使用时优先级较高,在响应头中设置
其它HTTP Head字段:
① Expires :它通常的使用格式是Expires:Fri ,24 Dec 2027 04:24:07 GMT,后面跟的是日期和时间,超过这个时间后,缓存的内容将失效,浏览器在发出请求之前会先检查这个页面的这个字段,查看页面是否已经过期,过期了就重新向服务器发起请求;
② Last-Modified/Etag :它一般用于表示一个服务器上的