HTTP协议,全称超文本传输协议(Hypertext Transfer Protocol),是互联网上应用最为广泛的一种网络协议。设计于服务于从WWW服务器传输超文本到本地浏览器的传送协议。它将脱机网络环境中的,文件、图像、声音、视频等多媒体信息,以及各种超文本消息,通过各类工具譬如网页浏览器进行传输。
HTTP协议的主要模式是“请求-响应”模式,客户端发送一个请求到服务器,然后服务器返回一个响应。请求和响应都是由一些预定的信息组成的,包括:
HTTP请求
HTTP请求由:请求行、请求头部、空行和请求体四部分构成。
- 请求行:包括请求方法(GET, POST等)、URL以及HTTP版本号。比如:
GET /index.html HTTP/1.1
就简单明了地表示了本次请求的类型、资源和协议版本。 - 请求头部:包括许多具有不同作用的属性字段,例如:
Host: www.example.com
,表示请求的主机地址。请求头部的字段属性也包括User-Agent(用户代理,标识请求源的软件类型)、Accept(能接受的媒体类型)等。 - 空行:请求头部与请求体之间有一行空行,表示头部的结束。
- 请求体:主要用于POST方法,包括提交的数据。如表单提交的数据就会存放于此。GET方法一般无请求体。
HTTP响应
HTTP响应也分为四部分:状态行、响应头部、空行和响应体。
- 状态行:包括HTTP版本号、状态码和状态信息。如:
HTTP/1.1 200 OK
,这里的200就是表示请求成功的状态码,OK是状态信息。 - 响应头部:包括许多有不同作用的属性字段,例如:
Content-Type: text/html
,表示响应的内容类型、格式是HTML。字段属性还包括Date(报文创建日期)、Server(服务器软件信息)、Content-Length(响应体的长度)等。 - 空行:响应头部和响应体之间有一行空行,表示头部的结束。
- 响应体:服务器返回给客户端的文本信息,一般是HTML代码、图像或其他资源的数据。
说完了HTTP的请求和响应,我们再来理解一下HTTP的状态码。HTTP状态码由三位数字构成,第一位定义了响应的类别,分别有五种可能:
- 1xx:信息响应,标识请求已被接收,需要继续处理。
- 2xx:成功,标识请求已被成功接收、理解、并接受。
- 3xx:重定向,要完成请求必须进行进一步的操作。
- 4xx:客户端错误,请求语法匹配错误或无法完成请求。
- 5xx:服务器错误,服务器在处理请求的过程中发生了错误。
其中具体含义就更加细致了,例如200表示请求成功,403表示服务器拒绝请求,404表示请求的资源未找到,500表示服务器内部错误等。
提升HTTP协议运行效率的方法主要包括:保持连接、管线化、压缩、分块传输等方式。学习和理解HTTP协议的请求和响应,及其状态信息,对于真正掌握网络通信有着重要的意义,这就像理解操纵人偶的绳子,只有找准了规则和方法,才能够在网络世界自由行走。
云服务器推荐
蓝易云国内/海外高防云服务器推荐
海外免备案云服务器链接:www.tsyvps.com
蓝易云香港五网CN2 GIA/GT精品网络服务器。拒绝绕路,拒绝不稳定。