45 lines
2.9 KiB
Markdown
45 lines
2.9 KiB
Markdown
## HTTP常用的状态码有哪些
|
||
|
||
### **1. 信息性状态码(1xx)**
|
||
表示请求已被接收,继续处理。
|
||
- **100 Continue**:客户端应继续发送请求,后续请求将被处理。
|
||
### **2. 成功状态码(2xx)**
|
||
表示请求已成功被服务器接收、理解并接受。
|
||
- **200 OK**:请求成功,返回了请求的数据。
|
||
- **201 Created**:请求成功并且服务器创建了新的资源。
|
||
- **204 No Content**:请求成功,但响应中没有内容。
|
||
### **3. 重定向状态码(3xx)**
|
||
表示需要进一步操作以完成请求。
|
||
- **301 Moved Permanently**:请求的资源已永久移动到新位置。
|
||
- **302 Found**:请求的资源临时移动到新位置。
|
||
- **304 Not Modified**:资源未修改,可使用缓存版本。
|
||
### **4. 客户端错误状态码(4xx)**
|
||
表示客户端请求有误或无法完成。
|
||
- **400 Bad Request**:请求无效,服务器无法理解。
|
||
- **401 Unauthorized**:请求需要身份验证。
|
||
- **403 Forbidden**:服务器拒绝请求,即使身份验证通过也可能无权限访问。
|
||
- **404 Not Found**:请求的资源不存在。
|
||
- **405 Method Not Allowed**:请求方法(如GET、POST等)不被允许。
|
||
### **5. 服务端错误状态码(5xx)**
|
||
表示服务器在处理请求时发生错误。
|
||
- **500 Internal Server Error**:服务器内部错误,无法完成请求。
|
||
- **502 Bad Gateway**:服务器作为网关或代理时,从上游服务器收到无效响应。
|
||
- **503 Service Unavailable**:服务器暂时无法处理请求(可能是过载或维护)。
|
||
- **504 Gateway Timeout**:服务器作为网关或代理时,未能及时从上游服务器获得响应。
|
||

|
||
|
||
## HTTP返回状态301 302分别是什么?
|
||
|
||
3xx 类状态码表示客户端请求的资源发生了变动,需要客户端用新的 URL 重新发送请求获取资源,也就是重定向。
|
||
|
||
- 「301 Moved Permanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的 URL 再次访问。
|
||
- 「302 Found」表示临时重定向,说明请求的资源还在,但暂时需要用另一个 URL 来访问。
|
||
301 和 302 都会在响应头里使用字段 Location,指明后续要跳转的 URL,浏览器会自动重定向新的 URL。
|
||
|
||
## http 502和 504 的区别?
|
||
|
||
- 502 Bad Gateway:作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。
|
||
- 504 Gateway Time-out:作为网关或者代理工作的服务器尝试执行请求时,未能及时从上游服务器收到响应。
|
||
举一个例子,假设 nginx 是代理服务器,收到客户端的请求后,将请求转发到后端服务器(tomcat 等)。
|
||
当nginx收到了无效的响应时,就返回502。
|
||
当nginx超过自己配置的超时时间,还没有收到请求时,就返回504错误。 |