快速掌握前端开发中的http基础。
先来一个http状态码公式:
1. Status 1xx(临时响应) 表示临时响应并需要请求者继续操作
2. Status 2xx(成功)
3. Status 3xx(重定向) 一般用来重定向
4. Status 4xx(请求错误) 请求出错
5. Status 5xx(服务器错误)
接下来是几个常见的状态码,200就不说了,304是上次请求后,资源未修改,如果在chrome devtools中发现某静态资源的状态码是304,需要强制刷新浏览器。401是请求需要身份验证。403服务器拒绝请求。
请求方法
请求方法不止是get和post,常用的还有put和detele,这四个请求方式分别对应查,改,增,删。比较常用的请求还有在跨域时遇到的options请求,这个请求的坑在于它没有带上cookie。
无状态
http是无状态协议,那么它怎么保存用户的会话状态?首先会话状态是什么,打个比方,A和B隔着门聊天,这时C也在附近,A怎么确定和他说话的是B还是C,这就用到了会话。B和A开始说话前,B把自己的贴身信物扔给了A,这个贴身信物是唯一,能确认是B的。这时A开启一次会话,并且把自己的话筒给了B,B拿着话筒就可以不断对A说话。因为C没有话筒,所以可以判断是谁在说话。等到B说完的时候,表明想关闭会话,那么A就知道B已经停止对他说话,把会话关闭,让B把话筒扔了。那么B扔的贴身信物就是我们平时常用的会员登录或者其他身份验证,B的浏览器发送了表明自己身份的请求,服务器知道这是用户B之后开启了一次session,并把这次会话也就是session的标识,通过cookie记录在B的浏览器上,每次B发送请求的时候带上了cookie,也就是拿着’话筒’说话。说完之后,B关闭浏览器,那么cookie消失,话筒没了,或者B选择登出,那么服务器A将cookie删掉,’话筒’也没了,会话都将结束。
那么没有cookie能不能进行会话呢,在用户B禁用了cookie之后,可以通过url记录会话信息,服务器通过改变B的url参数,使B的浏览器请求获得了’话筒’,这时候url就变成了这样: http ://www.xx.com?session_id = xx134x。
cookie
cookie在设置时需要在参数中指明过期时间,如果没指明,就没有过期时间。所以cookie的存储分为两种:1.持久cookie,数据保存在磁盘中 2.会话cookie, 数据保存在内存中,浏览器关闭后将被清除。上文中说到的cookie就属于第二种。