4、http
4.1、什么是http
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:HTML,字符串 ,~……
- 超文本:图片,音乐,视频,定位,地图……
- 默认端口:80
Https:安全的
- 默认端口号:443
4.2、两个时代
- http1.0
- HTTP/1.0:客户端可以与web服务器连接后,只能获得一个web资源,第二次请求,请求不到了就断开连接了
- http2.0
- HTTP/1.1:客户端可以与web服务器连接后,可以获得多个web资源。
4.3、http请求(Request)
- 客户端 - - - > 发请求(Request) - - - > 到服务器
以百度为例:
General(常规)
Request URL: https://www.baidu.com/ 请求地址
Request Method: GET // 请求方法 get方法/post方法
Status Code: 200 OK // 状态码:200:ok
Remote(远程) Address: 39.156.66.14:443 // 远程地址 ,真实访问走的这个地址
// Referrer Policy: strict-origin-when-cross-origin // 协议 能访问到什么东西
请求 URL: https://www.baidu.com/
请求方法: GET
状态代码: 200 :OK
远程地址: 39.156.66.14:443
引用站点策略: strict-origin-when-cross-origin
Request Headers(请求标头)
Accept:text/html // 类型
Accept-Encoding: gzip, deflate, br // 类型的编码
Accept-Language: zh-CN,zh;q=0.9 // 类型的语言 zh-CN:中文
Cache-Control: max-age=0 // 缓存控制
Connection: keep-alive // 连接
1、请求行
- 控制请求的协议
Request URL: https://www.baidu.com/ 请求地址
Request Method: GET // 请求方法 get方法/post方法
- 请求行中的方式:get
- 请求方式:Get,Post ,head,delete,put,tract……
- get:
- 一次请求能够携带的参数比较少,大小有限制,
- 会在浏览器的URL的地址栏显示数据内容,不安全,但是高效。
- post:
- 一次请求能够携带的参数没有限制,大小没有限制,
- 不会在浏览器的URL的地址栏显示数据内容,安全,但不高效。
- get:
2、消息头
Accept: 告诉浏览器,他所支持的数据类型
Accept-Encoding: 支持哪种编码格式 GBK UTF-8(正常数据库用的格式) GB2312 ISO8859-1(java默认编码)
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
host: 主机...
4.4、http响应
- 服务器 - - -> 响应给 - - - -> 给客户端
例:百度
Response Headers:响应头
Cache-Control: private 缓存-控制
Connection: keep-alive 连接:保持连接
Content-Encoding: gzip 内容-编码
Content-Type: text/html;charset=utf-8 内容-类型 html
1、响应体
和消息头是一样的,因为是符合http规范的,但是有特殊的功能
Accept: 告诉浏览器,他所支持的数据类型
Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language: 告诉浏览器,它的语言环境
Cache-Control: 缓存控制
Connection: 告诉浏览器,请求完成是断开还是保持连接
host: 主机...
特殊功能:
refresh: 告诉客户端,多久刷新一次
Location: 让网页重新定义;
2、响应状况码 (重点)
200:请求响应成功 200
3XX:请求重定向 303
- 重定向:你重新到我给的你新位置去;
4XX:找不到资源 404
- 资源不存在;
**5XX:服务器代码错误 500 **
- 502:网关错误
常见面试题:
当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么?