HTTP请求

首页引用阮一峰大神博客上的一张图解,大致了解http请求的一个过程:

 

接下来我们来看看当今最流行的http1.1版本:

一、客户端请求:

  1、GET请求

GET / HTTP/1.1
Accept: */*                                   
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
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)
Host: www.google.cn
Connection: Keep-Alive

  请求的第一行代表该请求的类型(GET或者POST).

  Accept字段声明自己可以接受哪些数据格式

  Encoding字段说明数据的压缩方法。

  Connection: keep-alive,持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用。如果客户端和服务器发现对方一段时间没有活动,就可以主动关闭连接。不过,规范的做法是,客户端在最后一个请求时,发送Connection: close,明确要求服务器关闭TCP连接。这是相比HTTP1.0版本最大的不同和优势。

 

  2、POST请求

POST / 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

  Content-Type字段用来声明数据是什么格式(text/html,text/css等等)

  Host字段,就可以将请求发往同一台服务器上的不同网站,为虚拟主机的兴起打下了基础。

  Content-length字段用来声明本次回应的数据长度

 

 二、服务器响应:

HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html; charset=UTF-8

   HTTP状态码200,找到资源,并且一切正常.
      Date:生成响应的日期和时间.
      Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8

 

 

 

 

最后,扒取一些常见的状态码:

200:OK

301:代表着某个URL发生了转移,且是永久性转移    

302:代表着某个URL发生了转移,但只是暂时性转移    

304:Not Modified,服务器告诉客户,原来缓冲的文档还可以继续使用

307:临时重定向,可以保持客户端原始URL不变,由服务器根据情况动态指定重定向地址    

400:bad request,请求无效

401:unauthorized,拒绝访问

403:forbidden,没有权限访问此站

404:not found,没有找到该网页

410:Gone,通知用户该资源已经不再可用

500:Internal Server Error,服务器正常维护

501: Not Implemented,服务器还是不具有请求功能的

 

 

 

 

posted @ 2017-11-22 22:34  Shmily-HJT  阅读(154)  评论(0)    收藏  举报