HTTP1.1的请求行
1.1、请求行的特点

请求行是请求的第1行。

请求行只有1行。

1.2、请求行的格式
<Request-Method> <Request-URI> <HTTP-Version> <CRLF>

请求行分为4个部分,这4个部分都是必需的,每部分之间用1空格分开。

1.3、请求行的示例

示例1:

GET /index.html HTTP/1.1 <CRLF>

示例2:

GET /favorite/list?uid=10000020&pageNumber=1&pageSize=10 HTTP/1.1 <CRLF>
1.4、Request-Method

Request-Method(请求方法)不仅会影响协议的格式,而且是有语意的。

Request-URI是大小写敏感的,Request-URI必需是大写的英文字母。

Request-Method8种,如下:

GET请求获取Request-URI所标识的资源
POSTRequest-URI所标识的资源后附加新的数据,方法要求被请求服务器接受附在请求后面的数据,常用于提交表单。
PUT请求服务器存储一个资源,并用Request-URI作为其标识
DELETE请求服务器删除Request-URI所标识的资源
HEAD请求获取由Request-URI所标识的资源的响应消息报头,HEAD方法与GET方法几乎是一样的,对于HEAD请求的回应部分来说, 它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的。利用这个方法,不必传输整个资源内容, 就可以得到Request-URI所标识的资源的信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
TRACE请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT保留将来使用
OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求
1.5、Request-URI

URI的规范由RFC3986定义。

这里特别注意的是:HTTP/1.0HTTP/1.1Request-URI的表示不同。

HTTP/1.0里,Request-URI里包含了schemeauthority

HTTP/1.1里,Request-URI里不包含schemeauthority

HTTP/1.1里新增了Host请求头,schemeauthority放到Host请求头里了。

HTTP/1.0示例:

GET http://localhost:8080/index.html HTTP/1.0 <CRLF>

HTTP/1.1示例:

GET /index.html HTTP/1.0 <CRLF>
Host: http://localhost:8080

URI不能超过1024byte

1.6、HTTP-Version

HTTP-Version表示HTTP协议的版本,这里只能是HTTP/1.0或者HTTP/1.1, 分别代表HTTP 1.0HTTP 1.1

1.7、CRLF

CRLF表示回车并换行,除了作为结尾的CRLF外,不允许出现单独的CRLF字符。

在实际编写协议的时候,使用\r\n