HTTP 响应码
HTTP(超文本传输协议)的响应码是一组标准的数字代码,用于表示服务器对客户端请求的响应结果。响应码分为以下五类:
1xx:信息响应
说明: 服务器已接收到请求,客户端应继续发送请求的后续部分。
- 100 Continue:表示初步请求已接收,客户端可以继续发送剩余部分。
- 101 Switching Protocols:服务器同意切换协议,例如升级到 HTTP/2。
- 102 Processing:表示请求正在处理中(WebDAV扩展)。
2xx:成功响应
说明: 请求已成功处理。
- 200 OK:请求成功,服务器返回请求的资源。
- 201 Created:请求已成功并且资源已被创建,常用于 POST 或 PUT 请求。
- 202 Accepted:请求已接受,但尚未处理。
- 203 Non-Authoritative Information:返回的信息不是来自服务器的原始数据源。
- 204 No Content:请求成功,但服务器没有返回内容。
- 205 Reset Content:请求成功,客户端需要重置视图。
- 206 Partial Content:服务器返回部分内容,用于范围请求。
3xx:重定向
说明: 客户端需要采取进一步操作来完成请求。
- 300 Multiple Choices:多种选择,客户端可以选择一项。
- 301 Moved Permanently:资源已永久移动到新的 URI。
- 302 Found:资源临时移动,客户端应使用新的 URI。
- 303 See Other:请求应通过 GET 方法访问另一个 URI。
- 304 Not Modified:资源未修改,客户端可以使用缓存版本。
- 307 Temporary Redirect:资源临时重定向,但请求方法不变。
- 308 Permanent Redirect:资源永久重定向,请求方法不变。
4xx:客户端错误
说明: 客户端请求有问题,服务器无法处理。
- 400 Bad Request:请求语法错误或无效请求。
- 401 Unauthorized:需要身份验证。
- 403 Forbidden:服务器拒绝执行请求。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不被支持。
- 406 Not Acceptable:请求资源无法满足客户端要求。
- 407 Proxy Authentication Required:需要代理身份验证。
- 408 Request Timeout:请求超时。
- 409 Conflict:请求与服务器的状态冲突。
- 410 Gone:资源已永久删除。
- 411 Length Required:需要明确的 Content-Length 头。
- 412 Precondition Failed:请求条件失败。
- 413 Payload Too Large:请求实体过大。
- 414 URI Too Long:URI 过长。
- 415 Unsupported Media Type:媒体类型不支持。
- 429 Too Many Requests:请求频率超限。
5xx:服务器错误
说明: 服务器在处理请求时发生错误。
- 500 Internal Server Error:服务器内部错误。
- 501 Not Implemented:服务器不支持请求功能。
- 502 Bad Gateway:网关或代理服务器收到无效响应。
- 503 Service Unavailable:服务不可用(超载或维护)。
- 504 Gateway Timeout:网关超时。
- 505 HTTP Version Not Supported:HTTP 协议版本不支持。
- 507 Insufficient Storage:服务器存储不足(WebDAV 扩展)。
- 508 Loop Detected:检测到循环(WebDAV 扩展)。
总结
- 2xx 表示成功,客户端的请求被正确处理。
- 3xx 表示重定向,客户端需要进一步操作。
- 4xx 表示客户端的错误请求。
- 5xx 表示服务器错误,服务器无法处理请求。
HTTP 和 HTTPS 的区别
HTTP 和 HTTPS 是两种用于网络通信的协议,主要区别在于 安全性 和 数据传输方式。
1. 基本概念
-
HTTP(HyperText Transfer Protocol)
是一种超文本传输协议,主要用于在 Web 浏览器和服务器之间传输数据。 -
HTTPS(HyperText Transfer Protocol Secure)
是 HTTP 的安全版,通过 SSL/TLS(Secure Sockets Layer/Transport Layer Security) 加密数据传输,保证通信的安全性和隐私性。
2. 主要区别
特性 | HTTP | HTTPS |
---|---|---|
安全性 | 数据是明文传输,容易被中间人攻击(MITM)。 | 数据经过 SSL/TLS 加密,防止窃听和篡改。 |
端口 | 默认使用端口号 80。 | 默认使用端口号 443。 |
证书 | 不需要证书即可运行。 | 需要可信的 SSL/TLS 证书 来认证身份。 |
数据完整性 | 无法验证数据是否被篡改。 | 可验证数据的完整性,防止被篡改。 |
性能 | 不需要加密和解密,速度稍快。 | 加密和解密耗费资源,速度稍慢(但差距小)。 |
搜索引擎优待 | 搜索引擎对 HTTP 网站没有优待。 | 搜索引擎(如 Google)优先排名 HTTPS 网站。 |
信任标识 | 浏览器显示“不安全”警告。 | 浏览器显示“锁”标志,增强用户信任。 |
3. 工作原理上的不同
HTTP
- 客户端发送请求到服务器(明文传输)。
- 服务器返回数据给客户端(明文传输)。
HTTPS
- 客户端连接服务器,并请求建立安全连接。
- 服务器通过 SSL/TLS 证书 验证身份,生成对称密钥。
- 数据通过加密隧道传输,客户端和服务器使用对称密钥加密和解密数据。
4. 应用场景
HTTP
常用于:
- 无需敏感信息的普通网站(如博客或公开文档)。
- 内部测试环境或非正式通信。
HTTPS
常用于:
- 电商、银行等敏感信息交互的场景。
- 用户登录页面。
- 网站要求提高搜索引擎排名或提升用户信任。
5. 为什么 HTTPS 更重要?
- 防止窃听: 数据加密后,即使被截获,也无法解读内容。
- 防止篡改: 数据完整性检查可发现是否被篡改。
- 身份认证: 证书验证确保用户访问的是合法服务器。
总结
HTTPS 是 HTTP 的安全升级版,通过加密传输和身份验证,提升了通信的安全性。现代网络中,使用 HTTPS 是趋势,特别是涉及敏感数据的网站。