HTTP 协议广泛用在客户端浏览器和服务器之间进行传输数据。它是一种基于 TCP 连接的一个无状态的应用层协议。HTTP技术演变历史
HTTP请求方法
HTTP 协议提供了多种类型的请求方法,HTTP0.9 提供了GET
方法,HTTP1.0 增加了两种请求方法:POST
和HEAD
方法。HTTP1.1 新增了五种请求方法:OPTIONS
, PUT
, DELETE
, TRACE
和CONNECT
方法。
-
GET
请求指定的页面信息,并返回实体主体,此种方式只能传输少量数据。 -
HEAD
类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头。 -
POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中,通常采用这种方式向服务器提交数据,数据会被加密,而且能够传输大量数据。 -
PUT
从客户端向服务器传送的数据取代指定的文档的内容。 -
DELETE
请求服务器删除指定的页面。
其他方法用到了再说,理解GET
和POST
就可以了。
HTTP 请求
HTTP 请求可以分为三个部分,分别是请求行、请求头和请求体。死死的记住这三个术语,这很重要,搞清楚了术语,才能说的出来,才记得住,才会变成自己的知识。
HTTP请求报文内容如下:
POST /login.html HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive
name=keqi&password=admin
第一行是请求行,内容格式为:方法/uri/协议版本号
。中间是请求头,包含了一些和服务器通信必须要有的控制信息等。最后是请求体,浏览器向服务端发送的数据就包含在这里面。
HTTP响应
HTTP 响应同样可以分为三个部分,分别是响应行、响应头和响应体。也是需要死死的记住这三个术语,才算是掌握了响应体。
HTTP响应报文内容如下:
HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8
<html>
<head></head>
<body>
<!--body goes here-->
</body>
</html>
第一行是响应行,内容格式为:协议版本号/状态码/状态码英文名称
。中间是响应头,包含了一些和服务器通信必须要有的控制信息等。最后是响应体,服务端向浏览器返回的数据就包含在这里面。
HTTP协议的状态码
服务端处理完浏览器发送过来的请求后,会返回相应的信息给浏览器,其中响应报文的第一行中的响应行内就包含了状态码和它的英文名称,用来表示此次相应的状态。
状态码分为五类,由三个数字组成,其中第一个数字表示响应码的类别。
-
1xx
:指示信息,表示请求已接收,继续处理 -
2xx
:成功,表示请求已被成功接收并处理 -
3xx
:重定向,需要进一步的操作才能完成原有的请求,就是请求重定向会返回的状态码。 -
4xx
:客户端错误,请求有错误或请求资源不存在等。 -
5xx
:服务器端错误,服务器在处理请求的过程中发生了错误。
其中最常见的就是 404 请求资源不存在和 200 请求成功了,还有空指针异常,返回的状态码是 500 。查看全部状态码参考这里
总结:目前这个阶段先死死的记住,HTTP 请求方法中常见的有 GET 和 POST 两种,请求报文和响应报文都可以分为三个部分,还要死死的记住请求行和相应行的组成。以及三个常见的状态码,404、200 和 500。
网友评论