HTTP是什么
HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间传输数据的协议,是一个客户端-服务器协议,客户端向服务器发送HTTP请求,服务器则返回HTTP响应。
HTTP协议是基于TCP/IP协议栈的应用层协议,定义了客户端和服务器之间的通信规则。HTTP协议的主要特点是简单、灵活、可扩展和无状态;HTTP使用URL(Uniform Resource Locator)来定位Web资源,使用HTTP方法(如GET、POST、PUT、DELETE等)来描述对资源的操作。
HTTP协议的工作流程通常如下:
- 客户端向服务器发送HTTP请求,请求包括请求方法、URL、HTTP版本、请求头等信息。
- 服务器接收到请求后,根据请求信息进行处理,并返回HTTP响应,响应包括状态码、响应头、响应正文等信息。
- 客户端接收到HTTP响应后,根据响应信息进行处理,通常是解析响应正文并显示在浏览器中。
HTTP协议是Web应用程序的基础,支持各种Web应用程序,如浏览器、Web服务、Web API等。
HTTP状态码
由Web服务器向用户代理(例如浏览器)返回的响应的三位数字代码
常见的HTTP状态码及其含义:
- 200 OK:请求成功,服务器正常返回页面;
- 301 Moved Permanently:永久重定向,请求的URL被永久转移到新的URL; 301 永久搬家
- 302 Found:临时重定向,请求的URL被临时转移到新的URL; 302 找到:临
- 304 Not Modified:未修改,客户端缓存的资源是最新的,服务器返回此状态码表示资源未被修改,可直接使用客户端缓存的版本; 304 未修改:未
- 400 Bad Request:请求错误,服务器无法理解请求的格式,可能是参数错误或者缺少必要的参数;
- 401 Unauthorized:未授权,请求需要用户身份验证,但是用户未提供有效的身份验证信息;
- 403 Forbidden:禁止访问,服务器拒绝请求,可能是权限不足或者访问资源被禁止; 403 禁止:禁止
- 404 Not Found:未找到,请求的资源不存在;
- 500 Internal Server Error:服务器内部错误,服务器遇到错误,无法完成请求;
- 503 Service Unavailable:服务不可用,服务器暂时无法处理请求,可能是过载或者维护中。
HTTP请求头
客户端向服务器发送请求时,携带的附加信息
常用的HTTP请求头:
- Accept:指定客户端能够接收的内容类型;
- Accept-Encoding:指定客户端能够接受的内容编码;
- Accept-Language:指定客户端能够接受的自然语言;
- Cache-Control:指定请求和响应的缓存行为;
- Connection:指定连接类型,如 keep-alive 或 close;
- Content-Length:指定请求体的长度,以字节为单位;
- Content-Type:指定请求体的类型; 内容类型:指定
- Host:指定请求的主机名和端口号;
- User-Agent:指定客户端的浏览器类型和版本号。
HTTP响应头
服务器向客户端返回响应时,携带的附加信息。、
常用的HTTP响应头:
- Cache-Control:指定响应的缓存行为;
- Content-Encoding:指定响应的内容编码; 内容编码:指定
- Content-Length:指定响应体的长度,以字节为单位; 内容长度:指定
- Content-Type:指定响应体的类型; 内容类型:指定
- Date:指定响应的日期和时间;
- ETag:指定响应内容的实体标签,用于缓存控制;
- Expires:指定响应的过期时间;
- Last-Modified:指定响应内容的最后修改时间; 最后修改:指定
- Server:指定服务器的软件名称和版本号。