1、什么是HTTP
-
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
-
常见的超文本:图片、音频、视频、定位、地图…
-
端口号:80
2、两个时代
- http1.0:客户端可以与web服务器连接后,只能获得一个web资源,然后就断开连接;
- http2.0:客户端可以与web服务器连接后,可以获得多个web资源。
3、HTTP请求
- 客户端——>发请求(Request)——>服务器
Request URL: https://www.baidu.com/ //请求地址
Request Method: GET //请求方法:get方法/post方法
Status Code: 200 OK //状态码
Remote Address: 36.152.44.95:443 //远程地址和端口号
1、请求行
- 请求方式:get,post,head,delete,put,tract…
- get:请求时能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏中显示数据内容,不安全,但高效;
- post:请求时能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏中显示数据内容,安全,但不高效。
2、消息头
//告诉浏览器,它所支持的数据类型
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,
//告诉浏览器,它所支持的编码格式
Accept-Encoding: gzip, deflate, br
//告诉浏览器,它所支持的语言环境
Accept-Language: zh-CN,zh;q=0.9
//缓存控制
Cache-Control: max-age=0
//告诉浏览器,请求完成时断开还是保持连接
Connection: keep-alive
4、HTTP响应
- 服务器——>响应(Response)——>客户端
Cache-Control: private //缓存控制
Connection: keep-alive //连接
Content-Encoding: gzip //编码
Content-Type: text/html; //类型
1、响应体
//告诉浏览器,它所支持的数据类型
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,
//告诉浏览器,它所支持的编码格式
Accept-Encoding: gzip, deflate, br
//告诉浏览器,它所支持的语言环境
Accept-Language: zh-CN,zh;q=0.9
//缓存控制
Cache-Control: max-age=0
//告诉浏览器,请求完成时断开还是保持连接
Connection: keep-alive
//告诉客户端,多久刷新一次
Refresh:
//让网页重新定位
Location:
2、响应状态码
- 200:请求响应成功
- 3xx:请求重定向(给你定位一个新的服务器)
- 4xx:找不到资源
- 5xx:服务器代码错误(502:网关错误)
3、面试题
当年的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?