前端http与get,post请求
HTTP协议的主要特点
简单快速
灵活
无连接
无状态
通常我们要答出以上四个内容。如果实在记不住,一定要记得后面的两个:无连接、无状态。
我们分别来解释一下。
简单快速
简单:每个资源(比如图片、页面)都通过 url 来定位。这都是固定的,在http协议中,处理起来也比较简单,想访问什么资源,直接输入url即可。
灵活
http协议的头部有一个数据类型,通过http协议,就可以完成不同数据类型的传输。
无连接
连接一次,就会断开,不会继续保持连接。
无状态
客户端和服务器端是两种身份。第一次请求结束后,就断开了,第二次请求时,服务器端并没有记住之前的状态,也就是说,服务器端无法区分客户端是否为同一个人、同一个身份。
有的时候,我们访问网站时,网站能记住我们的账号,这个是通过其他的手段(比如 session)做到的,并不是http协议能做到的。
HTTP方法
包括:
GET:获取资源
POST:传输资源
put:更新资源
DELETE:删除资源
HEAD:获得报文首部
HTTP方法有很多,但是上面这五个方法,要求在面试时全部说出来,不要漏掉。
get 和 post 比较常见。
put 和 delete 在实际应用中用的很少。况且,业务中,一般不删除服务器端的资源。
head 可能偶尔用的到。
**
get 和 post的区别
**
区别有很多,如果记不住,面试时,至少要任意答出其中的三四条。
有一点要强调,get是相对不隐私的,而post是相对隐私的。
我们大概要记住以下几点:
1、浏览器在回退时,get不会重新请求,但是post会重新请求。【重要】
2、get请求会被浏览器主动缓存,而post不会。【重要】
3、get请求的参数,会报保留在浏览器的历史记录里,而post不会。做业务时要注意。为了防止CSRF攻击,很多公司把get统一改成了post。
4、get请求在url中传递的参数有大小限制,基本是2kb,不同的浏览器略有不同。而post没有注意。
5、get的参数是直接暴露在url上的,相对不安全。而post是放在请求体中的。
http状态码
http状态码分类:
常见的http状态码:
部分解释:
206的应用:range指的是请求的范围,客户端只请求某个大文件里的一部分内容。比如说,如果播放视频地址或音频地址的前面一部分,可以用到206。
301:重定向(永久)。
302:重定向(临时)。
304:我这个服务器告诉客户端,你已经有缓存了,不需要从我这里取了。
400和401用的不多。403指的是请求被拒绝。404指的是资源不存在。
这是一位大佬的笔记,大家感兴趣可以去关注他的公众号千古壹号,非常不错
推荐阅读