一、HTTP 基本概念
HTTP(HyperText Transfer Protocol 超文本传输协议),用于从WWW服务器传输超文本到本地浏览器的传输协议。实际作用就是为客户端与服务器的数据交换。
整个基本的工作流程是客户端发送一个HTTP请求,说明客户端想要访问的资源和请求的动作,服务端收到请求之后,服务端开始处理请求,并根据请求做出相应的动作访问服务器资源,最后通过发送HTTP响应把结果返回给客户端。其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。
二、HTTP 协议结构
用于 HTTP 协议交互的信息被称为 HTTP 报文。请求端(客户端)的 HTTP 报文叫做请求报文;响应端(服务器端)的叫做响应报文。HTTP 报文本身是由多行(用 CR+LF 作换行符)数据构成的字符串文本。
1.HTTP请求
HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求。
HTTP请求由请求行、请求头、请求正文三部分组成:
- 请求行:包括请求方式Method、资源路径URL、协议版本Version;
- 请求头:包括一些访问的域名、用户代理、Cookie等信息;
- 请求正文:就是HTTP请求的数据。
格式如下:
Method Request-URI HTTP-Version CRLF。
其中 Method表示请求方法;Request-URI是一个统一资源标识符;HTTP-Version表示请求的HTTP协议版本;CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。
(1)请求报文的起始由请求行构成(有些资料称为状态行,名字不一样而已,都是指的一个东西),用来说明该请求想要做什么,由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,注意每个字段之间都用空格分隔。
URL字段表示服务器的资源目录定位。
HTTP协议的请求方法有:
GET — 访问服务器的资源,请求获取Request-URI所标识的资源。
POST — 向服务器发送要修改的数据,在Request-URI所标识的资源后附加新的数据。
HEAD — 获取服务器文档的首部,由Request-URI所标识的资源的响应消息报头。
PUT — 向服务器上传资源,并用Request-URI作为其标识。
DELETE — 删除服务器的资源
CONNECT — 保留将来使用。
OPTIONS — 请求查询服务器的性能,或者查询与资源相关的选项和需求。
注意:方法名称是区分大小写的