4.1 什么是HTTP
http(超文本传输协议)是一个简单的请求-响应协议,它通常运行在TCP之上
- 文本:HTML、字符串…
- 超文本:图片、视频、音乐、定位、地图…
- HTTP端口:80
- HTTPS端口:443
4.2 HTTP的两个时代
-
HTTP 1.0
- HTTP/1.0:客户端可以和服务器连接,连接后只能获取一个web资源,然后就会断开连接
-
HTTP 2.0
- HTTP/1.1:客户端可以和服务器连接,连接后可以获取多个web资源
4.3 HTTP请求
客户端向服务器发送一次请求
比如在浏览器中请求百度
//General-请求行
Request URL: https://www.baidu.com/ //请求的域名/主机名
Request Method: GET //提交请求的方式:get or post
Status Code: 200 OK //状态码:200,3XX,4XX,5XX
Remote Address: 182.61.200.7:443 //通过域名解析到的主机IP
//请求头/消息头
Accept: text/html //客户端可以接收的数据类型
Accept-Encoding: gzip, deflate, br //类型编码
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 //语言
Cache-Control: max-age=0 //缓存控制
Connection: keep-alive //连接:保持连接,说明这是使用的HTTP1.1
1.请求行(存储请求的主机名+使用的请求方式)
- 请求行中的请求方式GET/POST
- GET:请求可以携带的参数少,大小有限制,会在浏览器的URL中显示数据类容,不安全但是很高效
- POST:请求可以携带的参数多,没有大小限制,不会在浏览器的URL中显示数据类容,安全但是不高效
- 但是现在网速很快,所以不高效的POST其实也很快了,所以我们基本都是采用POST提交表单
2.请求头/消息头
- Accept:告诉服务器,客户端浏览器支持的可接收文件的类型
- Accept-Encoding:告诉服务器,客户端浏览器支持的编码格式
- GBK
- UTF-8
- GB2312
- ISO8859-1
- Accept-Language:告诉服务器浏览器的语言环境
- Cache-Control:缓存控制
- Connection:告诉服务器,一次请求完成之后是断开还是保持连接
- HOST:主机
- …
4.4 HTTP响应
服务器发送响应给发出请求的客户端
上面请求百度得到的回应
//General-响应行
Request URL: https://www.baidu.com/ //请求的域名/主机名
Request Method: GET //提交请求的方式:get or post
Status Code: 200 OK //状态码:200,3XX,4XX,5XX
Remote Address: 182.61.200.7:443 //通过域名解析到的主机IP
Cache-Control: private //缓存控制
Connection: keep-alive //连接:保持连接,说明这是使用的HTTP1.1
Content-Encoding: gzip //编码
Content-Type: text/html;charset=utf-8 //传回来的content的类型为HTML,字符编码为UTF-8
1.响应头/响应体(和请求头相对应)
- Accept:告诉服务器,客户端浏览器支持的可接收文件的类型
- Accept-Encoding:告诉服务器,客户端浏览器支持的编码格式
- GBK
- UTF-8
- GB2312
- ISO8859-1
- Accept-Language:告诉服务器浏览器的语言环境
- Cache-Control:缓存控制
- Connection:告诉服务器,一次请求完成之后是断开还是保持连接
- HOST:主机
- Refresh:告诉客户端多久刷新一次
- Location:让网页重新定位
- ...
2.响应状态码(重点)
- 2XX:请求响应成功
- 3XX:请求重定向
- 重定向:请求A.HTML,A.HTML让我们去请求B.HTML
- 4XX:找不到资源/资源不存在
- 5XX:服务器代码错误
- 502:网关错误
常见面试题
当在浏览器中地址栏输入地址之后回车到浏览器将页面展示出来,这一段之间内,浏览器和服务器之间发生了什么?