原视频地址:https://www.bilibili.com/video/BV1vb41187jH?p=33
1. HTTP协议
1.1 什么是HTTP协议
- 超文本传输协议
- 浏览器和服务器之间的一种通讯协议
- 该协议是W3C负责制定的,其实本质上就是数据传送格式提前制定好了。浏览器和服务器都必须按照这种数据格式进行接收和发送。
1.2HTTP协议包括几部分(HTTP1.1)
- 请求协议:从Browser发送到Server的时候采用的数据传送格式
- 响应协议:从Server发送到Browser的时候采用的数据传送格式
1.3 请求协议
请求协议包括四部分:
- 请求行
- 消息报头
- 空白行
- 请求体
请求行包括:请求方式 URI 协议版本号
空白行:专门用来分离消息报头和请求体
1.4 响应协议
响应协议包括四部分:
- 状态行
- 响应报头
- 空白行
- 响应体
状态行: 协议版本号 状态码 状态描述信息
空白行: 分离响应报头和响应体
响应协议重点掌握状态码:
- 200 成功
- 404 资源未找到
- 500 服务器内部错误
- ……
2. GET和POST请求的区别
什么情况下浏览器发送的请求是GET请求?什么情况下浏览器发送的是POST请求?
只有当使用表单form,并且将form标签的method属性设置为method=“post”才是POST请求方式,其余剩下所有的请求方式都是基于GET方式的。
GET和POST请求有什么区别
【1】GET请求在请求行上提交数据,格式uri?name=value&name=value
【2】POST请求在请求体中提交数据,相对安全,提交格式name=value&name=value,这种提交方式最终不会在浏览器地址栏上显示
【3】POST请求在请求体中提交数据,所以POST请求提交的数据没有长度的限制【POST可以提交大数据】
【4】GET请求在请求行上提交数据,所以GET请求提交的数据长度有限制
【5】GET请求只能提交字符串数据;POST请求可以提交任何类型的数据,包括视频,所以文件上传必须使用POST请求
【6】GET请求最终的结果,会被浏览器缓存。而POST请求最终的结果不会被浏览器缓存。GET和POST请求应当如何选择使用
【1】有敏感数据,必须使用POST
【2】传送数据不是普通字符串,必须使用POST
【3】传送的数据非常多,使用POST
【4】这个请求是为了修改服务器端资源,使用POST
【5】GET请求多数情况下是从服务器读取数据,这个读取的资源在短时间之内是不会变化的,所以GET请求最终的结果被浏览器缓存起来
【6】POST请求是为了修改服务器端的资源,而每一次修改结果是不同的,最终的结果没必要被浏览器缓存起来关于缓存:浏览器将资源缓存之后,缓存的资源是和某个特定的路径绑定在一起的,只要浏览器再发送这个相同的请求路径,这个时候会去缓存中获取资源,不再访问服务器,以这种方式降低服务器的压力,提高用户的体验。但是有的时候,我们不希望走缓存,希望每一次都访问服务器,可以在请求路径后面加时间戳,例如:
http://ip:port/oa/system/logout?timestamp=121212121212