HTTP(Hypertext Transfer Protocol)是一种用于传输超文本和其他内容的应用层协议。
历史:
-
HTTP最早的版本是HTTP/0.9,它只支持简单的 GET 请求,而不支持其他操作。
-
HTTP/1.0 版本增加了许多新特性,如支持多个请求,请求和响应头信息,以及管道化传输。
-
HTTP/1.1 版本是当前最常用的版本,它引入了持久连接、流水线传输和请求优先级等功能。
原理:
-
HTTP是基于客户端-服务器模型的协议,客户端向服务器发送请求,服务器收到请求后会返回相应的响应。
-
HTTP请求包括请求行、请求头、请求体等部分,其中请求行包括请求方法、请求路径和协议版本;请求头包括各种元数据,如Content-Type、Content-Length等;请求体则是请求的具体内容。
-
HTTP响应包括状态行、响应头和响应体等部分,其中状态行包括协议版本、状态码和状态描述;响应头包括各种元数据,如Content-Type、Content-Length等;响应体则是响应的具体内容。
应用:
-
HTTP主要用于Web应用程序,客户端通过HTTP请求获取服务器上的资源,如HTML、CSS、JavaScript、图片等。
-
HTTP还可以用于实现RESTful API、邮件协议等。
发展:
-
HTTP/2.0 引入了二进制协议、多路复用技术、头部压缩等技术,使得协议性能得到了大幅提升。
-
HTTP/3.0 使用了QUIC协议,从而实现了更快的传输速度和更低的延迟。
-
HTTP/4.0 和 HTTP/5.0 分别引入了Beep协议和WebAssembly技术,从而使得协议更加高效和灵活。
HTTP状态码(HTTP status code)是用于表示HTTP请求处理结果的数字代码。状态码由三位数字组成,第一个数字表示状态码的类型,后面两个数字用于进一步分类。以下是HTTP状态码的一些常见类型和状态码:
1xx:信息性状态码
-
100:继续
-
101:切换协议
2xx:成功状态码
-
200:成功
-
201:创建成功
-
202:接受成功
-
204:删除成功
-
206:部分成功
3xx:重定向状态码
-
300:多种选择
-
301:永久重定向
-
302:暂时重定向
-
304:未修改
-
307:临时重定向
4xx:客户端错误状态码
-
400:请求错误
-
401:未授权
-
403:禁止
-
404:未找到
-
405:方法禁用
-
406:不接受
-
408:请求超时
-
410:资源已删除或不存在
-
415:不支持的媒体类型
5xx:服务器错误状态码
-
500:服务器内部错误
-
501:服务器不具备请求的资源
-
502:错误网关
-
503:服务器不可用或超负载
-
504:网关超时错误
-
505:HTTP版本不受支持
常见状态码中,2xx表示成功,4xx表示客户端错误,5xx表示服务器错误。