http基础一
1. HTTP是什么?
HTTP(超文本传输协议,HyperText Transfer Protocol)是一种用于从万维网服务器传输超文本到本地浏览器的协议。它是无状态的客户端-服务器协议,通常在Web浏览器和Web服务器之间用于传输网页、图片、视频等资源。HTTP是应用层协议,工作在OSI模型的第7层。
2. 网络状态码(HTTP状态码)
HTTP状态码是服务器响应客户端请求时返回的3位数字,用于表示响应的处理结果。常见的HTTP状态码包括:
- 1xx(信息性状态码):请求已被接受,继续处理。
- 100 Continue
- 101 Switching Protocols
- 2xx(成功状态码):表示请求已被成功处理。
- 200 OK:请求成功并返回数据。
- 201 Created:请求成功并已创建资源。
- 204 No Content:请求成功,但无返回内容。
- 3xx(重定向状态码):表示需要客户端进一步操作才能完成请求。
- 301 Moved Permanently:资源永久迁移到新位置。
- 302 Found:资源临时迁移。
- 304 Not Modified:资源未修改,客户端可以使用缓存。
- 4xx(客户端错误状态码):表示客户端的请求有错误,服务器无法处理。
- 400 Bad Request:请求无效。
- 401 Unauthorized:未经授权。
- 403 Forbidden:禁止访问。
- 404 Not Found:请求的资源未找到。
- 5xx(服务器错误状态码):表示服务器在处理请求时发生了错误。
- 500 Internal Server Error:服务器内部错误。
- 502 Bad Gateway:无效的网关。
- 503 Service Unavailable:服务不可用。
3. GET和POST的区别
- GET:
- 用于获取数据。
- 请求参数通过URL传递,参数会显示在浏览器地址栏中。
- 一般用于请求数据,不对服务器数据进行修改。
- 有长度限制(URL长度限制,通常在2K以内)。
- 数据传输不安全,因为参数暴露在URL中。
- 是幂等的,多次相同请求结果相同。
- POST:
- 用于提交数据。
- 请求参数通过请求体传递,不显示在浏览器地址栏中。
- 一般用于向服务器提交数据,可能会改变服务器数据(例如,创建、更新资源)。
- 没有长度限制。
- 数据传输相对较安全,但仍然可能会暴露在请求中(建议通过HTTPS加密)。
- 不是幂等的,重复提交可能会有不同结果。