这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战
1.HTTP常见状态码
- 1XX(
信息状态码)- 100:
Continue,在发送POST请求时,发送header信息以后,服务端将返回此状态码,表示确认,此后可继续发送数据
- 100:
- 2XX(
成功状态码)- 200:
OK,正常返回信息 - 201:
Create,请求成功且服务器创建了新的资源 - 202:
Accepted,服务器接受了请求但尚未处理
- 200:
- 3XX(
重定向)- 301:
Moved Permanently,永久重定向,请求的页面已永久移动到新位置 - 302:
Found,临时重定向 - 303:
See Other,临时重定向,且总使用GET方法请求新的URI - 304:
Not Modified,自上次请求,页面未修改
- 301:
- 4XX(
客户端错误)- 400:
Bad Request,服务器无法理解的请求格式 - 401:
Unauthorized,请求未授权 - 403:
Forbidden,禁止访问 - 404:
Not Found,找不到与该URI匹配的资源
- 400:
- 5XX(
服务端错误)- 500:
Internal Server Error,服务端错误 - 502:
Bad Gateway,服务器网关错误 - 503:
Service Unavailable,服务端暂时无法处理请求
- 500:
2.304状态码
如果客户端发送了一个带条件的GET请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个304状态码(前提:浏览器中已有缓存,才能进行对比。)
3.301与302的区别
- 301:表示该资源已被
永久移动到新的位置,新的位置在该响应返回的URI中,该响应一般情况下可以缓存 - 302:表示该资源被
临时移动,应临时从不同的URI访问该资源,该响应一般情况下不可缓存(除非设置Expires或Cache-Control) - 应用方面:
301常用于做页面跳转,302用于做临时跳转(如:未登录用户跳转到登陆界面)
4.GET与POST的区别
| 方面 | GET | POST |
|---|---|---|
| 参数传递 | 存放在URL中 | 存放在Request Body中 |
| 长度限制 | 有长度限制(主要是浏览器限制) | 无长度限制 |
| 安全性 | 不安全,暴露在网址中 | 安全,网址中看不出请求参数 |
| 编码方式 | 仅支持URL编码 | 支持多种编码方式 |
| 缓存 | 浏览器主动缓存 | 不能缓存 |
| 参数保留 | 浏览器保留参数 | 浏览器不保留参数 |
| 后退 | 无害 | 数据会被重新提交 |
| 幂等性 | 幂等 | 非幂等性 |
| 副作用 | 无副作用 | 有副作用 |
| 应用 | 查询 | 提交修改 |
还有一个有争议的说法:POST请求会产生两个数据包而GET请求只产生一个,其实,POST请求产生两个数据包是header和body分开发送产生的结果,而这是非必然的,header和body是否分开发送取决于浏览器或框架的请求方法,不是POST请求的必然行为
5.fetch发送两次请求
fetch发送POST请求,总共发送两次,第一次发送了Options请求,询问服务端是否支持修改的请求头,如果允许,则进行第二次发送(此时发送数据)
6.CDN
CDN全称:Content Delivery Network(内容分发网络)
- 思路:尽可能避开互联网上
有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。 - 方法:多个
CDN节点服务器对源站资源进行缓存,在用户访问时通过全局负载技术将用户访问指向就近的节点,由CDN节点来响应用户的请求 - 目的:让用户
就近访问到资源,加快用户访问速度 - 优点:
- 解决
跨地区及跨运营商访问的问题,降低访问延时 - 对源站起到
分流作用,降低源站负载
- 解决
7.DNS
DNS全称:Domain Name System(域名服务系统)
DNS概念:
- 由
分层DNS服务器实现的分布式数据库 - 一个让主机能够
查询分布式数据库的应用层协议说明: - 对于浏览器来说,
DNS就是用来将域名转换成IP地址的 - 查询方法:
递归查询+迭代查询 递归查询:本机向本地DNS服务器进行查询,并返回查询结果迭代查询:本地DNS服务器不断向根、TLD(顶级域)、权威等DNS服务器进行域名查询并获取查询结果