1. HTTP状态码
- 200 请求成功
- 204 服务器成功处理, 但未返回内容
- 301 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
- 302 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
- 304 所请求的资源未修改,服务器返回此状态码时,不会返回任何资源, 应用缓存中的内容
- 400 客户端请求的语法错误,服务器无法理解
- 403 服务器理解请求客户端的请求,但是拒绝执行此请求
- 404 请求地址错误
- 500 服务器内部错误,无法完成请求
- 501 服务器不支持请求的功能,无法完成请求
- 502 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。服务器关了
2. 301和302的区别
3. HTTP缓存
- ETag 是通过对比浏览器和服务器资源的特征值(如MD5)来决定是否要发送文件内容,如果一样就只发送 304(not modified)
- Expires 是设置过期时间(绝对时间),但是如果用户的本地时间错乱了,可能会有问题
- CacheControl: max-age=3600 是设置过期时长(相对时间),跟本地时间无关。
4. GET和POST的区别
- GET 用于获取资源,POST 用于提交资源。
- GET 的参数放在 url 的查询参数里,POST 的参数(数据)放在请求消息体里。
- GET 没有 POST 安全, 因为参数直接暴露在URL上,所以不能用来传递敏感信息。(都不安全)
- GET 的参数(url查询参数)有长度限制,一般是 1024 个字符。POST 的参数(数据)没有长度限制(扯淡,4~10Mb 限制)
- GET 请求只需要发一个包,POST 请求需要发两个以上包(因为 POST 有消息体)(扯淡,GET 也可以用消息体)
- GET 用来读数据,POST 用来写数据,POST 不幂等(幂等的意思就是不管发多少次请求,结果都一样。)
5. Cookie 、 LocalStorage、SessionStorage、 Session
- Cookie
- HTTP响应通过 Set-Cookie 设置 Cookie
- 浏览器访问指定域名是必须带上 Cookie 作为 Request Header
- Cookie 一般用来记录用户信息
- Session
- Session 是服务器端的内存(数据)
- Session 一般通过在 Cookie 里记录 SessionID 实现
- SessionID 一般是随机数
- Cookie V.S. LocalStorage
- 主要区别是 Cookie 会被发送到服务器,而 LocalStorage 不会
- Cookie 一般最大 4k,LocalStorage 可以用 5Mb 甚至 10Mb(各浏览器不同)
- LocalStorage V.S. SessionStorage
- LocalStorage 一般不会自动过期(除非用户手动清除),而 SessionStorage 在回话结束时过期(如关闭浏览器)
- Cookie V.S. Session
- Cookie 存在浏览器的文件里,Session 存在服务器的文件里
- Session 是基于 Cookie 实现的,具体做法就是把 SessionID 存在 Cookie 里
网友评论