HTTP(超文本传输协议):一个基于请求与响应模式的、无效的、应用层的协议。常基于TCP的连接方式,绝大数的Web开发都是建立在HTTP 协议之上的Web应用。简单明了就是一个基于应用层的通信规范。
一. 概念
连接(Connection):浏览器和服务器之间存在传输数据的通道。 当请求完毕,通道关闭,如果保持连接,会降低服务器的处理的客户端请求数,而不保持连接服务器可以处理更多的请求,但是会降低处理速度,每次重新连接需要很长的时间。
请求(Request):浏览器向服务器发送的请求,包含请求的类型、请求的数据、浏览器的信息(语言、浏览器版本等)。
响应(Response):服务器对浏览器请求的返回的数据,包含是否成功、状态码等。
二、HTTP协议作用
规范了数据是如何打包的 以及 数据时如何传递的。
三、http请求报文分析
请求消息(Request Message):客户端向服务器发送的请求消息,具体图片如下:
请求消息包括三部分:
请求起始行 | 1、请求方法 POST:表示客户端想传递数据给服务器,有请求主体 DELETE:表示客户端想删除服务器上指定的文件(禁用) |
请求头
| 1、Host:localhost :告诉服务器请求哪一个虚拟主机 2、Connection:keep-alive:告诉服务器做持久连接 3、User-Agent; 告诉服务器,客户端浏览器的类型 4、Cache-Control:max-age=0;: 告诉服务器缓存信息,max-age,即不缓存 5、Accept-Language : zh-CN :告诉服务器自己能接收的自然语言 6、Accept-Encoding:gzip:告诉服务器自己可以接收的压缩类型 7、Referer: url :告诉服务器请求来自于哪个页面 |
请求体 | Form Data : 是真正的请求主体 |
响应消息(Response Message ): 服务器端根据客户端的请求消息,返回给客户端的响应消息。图片如下:
http协议—响应报文格式
响应起始行
| 分为三个部分: 1、协议版本号: HTTP / 1.1 5-500:服务器运行错误 |
响应消息头 | Content-Type:响应的主体类型,告诉浏览器,响应的数据时什么格式以及什么类型的 取值: text/plain:纯文本,告诉浏览器按纯文本的方式解析 text/html:文本与网页,告诉浏览器按html的格式解析内容 text/css:样式,告诉浏览器按 css 的方式解析 application/javascript:JS代码片段,按JS的方式运行数据 application/xml: 按 xml 的方式解析 application/json: 按 json 的方式解析 |
响应主体 | 由服务器端响应回来的数据 |
三、缓存
什么是缓存,有什么用?
客户端可以自动保存已访问过得文档的副本,这些副本就是所谓的缓存,当客户端再向同一URL发送请求时,那么就直接从缓存中将文件取出来,而不用再重新发送请求
缓存优点:
1、减少了冗余的数据传输,节省流量
2、缓解服务器带宽瓶颈的问题,服务器可以节省更多的带宽
3、降低了对服务器的资源消耗和运行要求
4、降低了由于远距离而造成的加载延迟
与缓存相关的消息头
Cache-Control:从服务器将文档传来之时起,认为新鲜的秒数 | 取值:秒数 60 / 3600 / ... ... 如果取值为 0 / no-cache,表示每次都要重新刷新网页 |
Expires: 明确指定缓存的过期时间,取值是格林尼治标准时间(GMT) | Expires:Fri,25 Aug 2017,08:00:00 GMT Expires:0 表示不需要缓存 |
如何在HTML网页中设置消息头
http-equiv :指定消息头的名称 |
content :指定消息头对应的内容 |
例子展示:
关于Http协议我们就先分享到这里,如果本篇博客对您的学习有所帮助,记得点赞哦!