这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天,今天跟着杨老师学习了HTTP协议的知识。
什么是HTTP协议
- HTTP:网络通信规则全称超文本传输协议,是基于TCP/IP协议传输数据的应用层协议,分为请求和响应。当我们浏览网页数据时HTTP协议在其中发挥很大作用。
- 特点:简单可扩展、无状态。
HTTP发展
Method
网络请求虽有多种方法,但常见的方法有GET和POST方法。
GET方法:常用于获取服务器资源,比如点击网页中的链接发生跳转,通过url传递参数。
POST方法:常用于提交用户输入的信息,例如:提交用户登录信息,通过body体传输参数。
安全和幂等
- 安全:不会修改服务器的数据的方法 (
GET HEAD OPTIONS) - 幂等:同样的请求被执行一次与连续执行多次的效果是一样的,服务器的状态也是一样的,也就是说幂等的方法不该有副作用。(
GET HEAD OPTIONS PUT DELETE)
常见网络请求状态码
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 301 | 资源被转移到其他URL |
| 302 | 临时跳转 |
| 401 | 请求未经授权 |
| 404 | 请求资源不存在 |
| 500 | 服务器内部发生不可预估的错误 |
| 504 | GateWay Timeout-请求超时 |
常见请求头与响应头
客户端向服务端发送请求,服务端对请求响应,向客户端反馈资源。
- 请求头组成和响应头组成:首行、header、空行、body(存放url参数)
缓存
- 强缓存:本地缓存若存在直接使用。
- 协商缓存:本地缓存若存在需协商能否使用。
cookie:存储的是用户身份相关的信息,一般不会太大(最大4Kb)通常服务器每次发送请求需要知道的数据存放在cookie中。
缺点:
应用场景
- 用户登录
当用户登录时(常用POST请求),向request的url发送请求,将能够标识用户的信息存放在cookie中,课程中的问题,当刷新页面后为什么能记住登录状态?在返回的数据中有一个时间戳(登录到期时间)超过这个时间则退出登录状态。
- 网络请求常见的还有跨域问题,因为浏览器有“同源策略”,当协议、域名、端口号有一个不相同,就是非同源。 解决方法有两种: ①CORS方式 ;②ajax的jsonp。
总结
HTTP协议无论是后端还是前端都是会经常接触到的,了解HTTP协议可能对于网络问题有更深的认识。