(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

参考:https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html

 

一个请求的样例:

GET / HTTP/1.1 
Host: www.???.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept-Language: zh-CN,zh;q=0.9

  • 请求报文格式 要求如下: 

    请求行(CRLF-Carriage-Return Line-Feed-\'\\13\'\'\\10\'-\\r\\d)
    CRLF
    (数据行-可选)
特别要注意:第一行的CRLF会车换行之后,必须要一个CRLF会车换行

        Request       = Request-Line              ; Section 5.1
                        *(( general-header        ; Section 4.5
                         | request-header         ; Section 5.3
                         | entity-header ) CRLF)  ; Section 7.1
                        CRLF
                        [ message-body ]          ; Section 4.3

一个从客户端发起的请求消息,在第一行中需要包含 使用资源的方法,资源的标示,使用的协议版本。

 

  • 使用资源的方法,用的最多的就是GET方法了,例如:GET / HTTP/1.1获取网站的根主页
       Method         = \"OPTIONS\"                ; Section 9.2
                      | \"GET\"                    ; Section 9.3
                      | \"HEAD\"                   ; Section 9.4
                      | \"POST\"                   ; Section 9.5
                      | \"PUT\"                    ; Section 9.6
                      | \"DELETE\"                 ; Section 9.7
                      | \"TRACE\"                  ; Section 9.8
                      | \"CONNECT\"                ; Section 9.9
                      | extension-method
       extension-method = token

 

  • 资源的标示: 有几种格式:常用的是相对路径与绝对路径

例如:
GET /Home/App HTTP/1.1 
GET http://www.5imvc.com/Home/App HTTP/1.1

    Request-URI    = \"*\" | absoluteURI | abs_path | authority
  • 头信息携带信息的种类,常见的Host等
       request-header = Accept                   ; Section 14.1
                      | Accept-Charset           ; Section 14.2
                      | Accept-Encoding          ; Section 14.3
                      | Accept-Language          ; Section 14.4
                      | Authorization            ; Section 14.8
                      | Expect                   ; Section 14.20
                      | From                     ; Section 14.22
                      | Host                     ; Section 14.23
                      | If-Match                 ; Section 14.24
                      | If-Modified-Since        ; Section 14.25
                      | If-None-Match            ; Section 14.26
                      | If-Range                 ; Section 14.27
                      | If-Unmodified-Since      ; Section 14.28
                      | Max-Forwards             ; Section 14.31
                      | Proxy-Authorization      ; Section 14.34
                      | Range                    ; Section 14.35
                      | Referer                  ; Section 14.36
                      | TE                       ; Section 14.39
                      | User-Agent               ; Section 14.43

     

待续。。。

收藏 打印