协议系列:HTTP常见请求方式和状态码总结
404 not found。
前言
最近在看同源策略和跨域问题时,看到CORS的解决方案是需要prefight,跨域时先向目标源发送一个OPTIONS请求,就发现这部分知识没有系统的了解过。今天就来总结一下常见的HTTP请求方式和HTTP状态码。
常见HTTP请求方式
这些请求方式是case-sensitive的,但是一些请求工具或请求框架可能已经做了toUpperCase处理。
- GET(HTTP1.0)。这个是最常见的请求方式了,只读资源而不产生副作用。
- POST(HTTP1.0)。请求数据通常来自于表单。
- OPTIONS(HTTP1.1)。请求返回服务器对特定资源支持哪些请求方式。
- HEAD(HTTP1.0)。和Get类似之只读资源并不产生副作用。区别是响应无响应体,只想获取一些响应头中的元信息。
- PUT(HTTP1.1)。指定URI,如果对应资源存在则修改(替代);如果不存在则创建。不带验证机制。
- DELETE(HTTP1.1)。删除指定资源。不带验证机制。
- TRACE(HTTP1.1)。使用 SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
- CONNECT(HTTP1.1)。服务器会将通信路径返回给客户端。
- PATCH。对资源进行部分修改,区别于PUT。不带验证机制。
常见HTTP状态码
- 1xx informational response,信息响应。接收的请求正在处理。
- 2xx success,成功。请求正常处理完毕。
- 3xx redirection,重定位。需要进行附加操作以完成请求。
- 4xx client errors,客户端错误
- 5xx server errors,服务器错误
1xx informational response,信息响应
2xx success,成功
3xx redirection,重定位
- 304 Not modified。请求方通过
If-Modified-Since
或者If-None-Match
请求头知道请求的资源并未改变,服务器无需重传,客户端使用缓存的版本即可。
4xx client errors,客户端错误
- 400 Bad Request。客户端错误导致服务器无法处理,比如请求格式错误、数据太大等。
- 401 Unauthorized。类似403。
- 403 Forbidden。客户端请求时包含非法数据,服务器理解请求但是拒绝处理。可能是因为用户无权限,或者请求了一个禁止的行为(比如创建重复记录)。
- 404 Not Found。资源未找到。
- 405 Method Not Allowed。请求方法不允许。比如使用PUT方法访问只读资源,应该使用POST而使用GET。
- 415 Unsupported Media Type。媒体文件格式不支持。比如客户端上传图片使用
images/svg+xml
,而服务器需要另外的图片格式。
5xx server errors,服务器错误
- 500 Internal Server Error。服务器内部错误,需要查看服务器报错日志。
- 502 Bad Gateway。请求的服务器是作为一个网关或者代理运行的。上流服务器返回的响应是非法的。
- 503 Service Unavailable :服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
总结
这部分内容只是简单地总结。一些状态码和方法并没有实际的用过,因此用于回查。