HTTP请求有三部分组成,分别是请求行、消息报头和请求正文。
1、请求行是以一个方法符号开头,后面跟着请求URI和协议的版本,以CRLF作为结尾。请求行以空格分隔,除了作为结尾的CRLF外,不允许出现单独的回车换行。格式如下: Method Request-URI HTTP-Version CRLF Method表示请求的方法,Request-URI是一个统一资源标识符,标识了要请求的资源,HTTP-Version表示请求的HTTP协议版本,CRLF表示回车换行。下面是主要的方法:
常用的方法是前三种:
(1)GET方法用于获取由Request-URI所标识的资源信息,常见的形式是:GET Request-URI HTTP/1.1,当我们直接在浏览器里面输入网址访问网页的时候,浏览器采用的就是GET方法向服务器获取资源。
(2)POST方法用于向目的服务器发出请求,要求服务器接受附在请求后面的数据。POST方法在表单提叫的时候用的较多。
(3)HEAD方法和GET方法几乎是一样的,区别在于HEAD方法只是请求消息报头,而不是完整的内容。对于HEAD请求的回应部分来说,它的HTTP头部中包含的信息与通过GET请求所得到的信息是相同的,通过这个方法,不必传输整个资源内容,就可以得到Request-URI所标识的资源的信息。这个方法通常被用于测试超链接的有效性,是否可以访问,以及最近是否更新。
2、消息报头(查看http消息)
3、请求正文,请求正文可以包含提交的数据。消息报头和请求正文之间有个CRLF空行,它表示消息报头结束,后面是请求正文。