1. readyState 属性
readyState属性值的含义:
0:初始值,表示请求未初始化,open方法尚未调用;
1:启动请求,open 方法已经调用,但尚未调用 send 方法;
2:请求发送,已经调用 send 方法,但尚未接收到响应;
3:接收响应,已经接受到部分响应数据,主要是响应头;
4:HTTP 响应完成,已经接收到全部响应数据,而且可以在客户端使用。
2. status 属性
HTTP 状态码是用来表示网页服务器响应状态的 3 位数字代码,所有状态码的第一个数字代表了响应的五种状态之一:
1xx:临时响应
2xx:成功
3xx:重定向
4xx:请求错误
5xx:服务器错误
问:哪些 HTTP 状态码表示我们可以获取到 HTTP 响应数据呢?
答:2开头的状态码 与 304。2开头的状态码都表示请求成功,而 304 是对客户端可读取缓存的一种响应,同样能获取到 HTTP 的响应数据。
3. GET请求 与 POST请求 对比
GET 请求:
- 一般用于信息获取:通过发送一个请求来取得服务器上的资源;
- 数据包含在 URL 地址中;
- 数据量受 URL 的长度限制;
- 不安全:浏览器的 URL 可以直接看到,明文传输;
- GET 请求会被缓存;
- GET 没有请求主体,请求速度相对较快;
POST 请求:
- 一般用于修改服务器上的资源:向指定资源提交数据,后端处理请求后往往会导致服务器建立新的资源或修改已有资源;
- 数据包含在请求主体中;
- 没有数据量限制,可在服务器的配置里进行限制;
- 比 GET 安全,实际上也是不安全的:可通过开发者工具或者抓包看到,明文传输;
- POST 请求不会缓存;
- POST 相对稳定、可靠:可发送包含未知字符的内容;
容易产生的误区: HTTP 协议里并没有限制 GET 和 POST 的长度,GET 的最大长度限制是因为浏览器和 Web 服务器对 URL 的长度限制,不同的浏览器和 Web 服务器限制的最大长度不一样,它们所限制的是整个 URL 的长度,而不仅仅是查询参数的数据长度。
网友评论