HTTP详解

定义:Http是计算机通过网络进行通讯的协议,http客户(浏览器)可以向http服务器(服务器)请求信息和服务,当前版本是1.1

特点:1.无状态连接,意味着浏览器发出请求,服务器返回数据后,连接立即关闭

   2.请求(request)/应答(response)模型

   3.使用内容类型,即返回的数据都有对应的类型,为MIME中的一种,包括html文件,图片等

步骤:

1.建立TCP连接

  首先浏览器与服务器建立连接,通过TCP完成(注:TCP与IP构成Internet,这就是著名的TCP/IP协议,Http比TCP更高层,根据规则,低层连接建立后才能建立高层连接)

  一般TCP的端口号是80;通过三次握手形成会话

2.浏览器发送请求命令

  eg:GET/sample/hello.jsp HTTP/1.1

  请求类型 url地址 协议版本

3.浏览器发送请求头信息

  发送完请求命令后,还要发送一些别的信息,最后发送空白行,表示结束

  请求头信息包括浏览器支持语言,浏览器支持编码,支持的MIME类型等。。。详情:http://jingyan.baidu.com/article/375c8e19770f0e25f2a22900.html

4.服务器应答

  接收到来自浏览器的请求后,服务器应答

  eg: HTTP/1.1 200 OK

  应答的第一部分是协议的版本号和应答状态码

  应答码大全:http://www.cnblogs.com/lxinxuan/archive/2009/10/22/1588053.html

5.服务器发送应答头信息

  服务器发送自己的信息,同样,以空白行结束

6.服务器发送数据

  服务器会按照应答头信息的格式发送数据

7.关闭TCP

----------------------------------------------------------------------------------------------------------------------------------

详细解析:

HTTP请求格式(第2,第3步)

下面是一个HTTP请求(发送数据块)的例子:

GET/sample.jspHTTP/1.1          对应第2步:请求类型 url地址 http协议类型

Accept:image/gif.image/jpeg,*/*  对应第3步:请求头信息

Accept-Language:zh-cn

Connection:Keep-Alive

Host:localhost

User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)

Accept-Encoding:gzip,deflate

                    以空白行结束

username=jinqiao&password=1234  请求正文

HTTP应答(第):

应答实例:

HTTP/1.1 200 OK          对应第4步:版本号和状态码
Server:Apache Tomcat/5.0.12     对应第5步:应答头信息
Date:Mon,6Oct2003 13:23:42 GMT
Content-Length:112
                    以空白行结束
<html>                 对应第6步,发送数据
<head>
<title>HTTP响应示例<title>
</head>
<body>
Hello HTTP!
</body>

</html>

request代码块常用属性详解:

Accept                     客户端可以接受的内容类型               text/html, application/xml

Accept-charset         浏览器可接受的字符编码集                iso-8859-5

Accept-language      浏览器可接受的语言                        zh-cn

Accept-encoding      浏览器可接受的的服务端发回的           gzip,deflate

           内容压缩类型

Connection             是否需要持久连接                            Keep-Alive

Content-Type          当前请求类型              application/x-www-form-urlencoded

Content-Length       请求长度                                        348

Host                       指定请求对象的域名和端口号              www.baidu.con:80

User-Agent             用户信息(客户端系统,版本等)        Mozila/4.0(compatible;MSIE5.01;Window NT5.0)

Date                      请求发送的时间                               Tue, 15 Nov 2010 08:12:31 GMT

Authorization          HTTP请求的授权信息                        Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Cookie                    请求发送时,会将该域名下所有         Version=1; Skin=new;

           cookie发送给web服务器

Cache-Control       指定请求和响应遵循的缓存机制          no-cache

 

 
原文地址:https://www.cnblogs.com/yanze/p/6004030.html