http协议是一种无记忆的协议,其基本形式是请求,响应,外层借助tcp协议实现数据传输。

http协议包含请求报文和响应报文。

请求报文:

GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1  
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, 
application/msword, application/x-silverlight, application/x-shockwave-flash, */*  
Referer: <a href="http://www.google.cn/">http://www.google.cn/</a>  
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; TheWorld)  
Host: <a href="http://www.google.cn">www.google.cn</a>  
Connection: Keep-Alive  
Cookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g; 
NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-
FxlRugatx63JLv7CWMD6UB_O_r

请求行:请求方法+URL+协议版本(可以看到URL中包含了请求参数

请求头:采取 【key:value】描述一些基本信息

可以看到Connection中设置为keep-alive  由此设置http存活时间

传统http1.0采取典型的请求-响应模式,请求到来时建立连接,完成响应后立即关闭连接

由于连接的建立和关闭带来一定的开销,若客户端频繁的请求服务器,将带来性能下降。

而http1.1引入长连接方式,即服务器在完成响应后,不立即关闭tcp连接,而是等待一定时间

 

服务器设定这个等待时间内若没有继续收到请求,就关闭该连接,其本质是通过TCP长连接实现

http协议中没有连接一说,其存活时间基于外层的tcp长连接的存活时间

TCP中的keepalive表示心跳保持,当客户端和服务器正常的通过tcp传输数据时,会一直维持心跳,若keepalive时间内,服务器一直没有收到客户端的tcp数据,那么认为其连接已经断开,那么服务器及时释放资源

通过linux命令查看可以看到tcp——keepalive的时长是2小时

怎么判断SSL使用 加密算法 ssl是加密协议吗_客户端

 

注意到请求头中包含一组:

Cookie: $Version=1; Skin=new;jsessionid=5F4771183629C9834F8382E23

Cookie: 其内容是一组存放在客户端的cookie信息,其中的sessionID则描述着与服务器连接的session信息,服务器由此确认客户端身份,避免重复验证。

 

对于POST 其请求体中将包含更多内容:主要是表单的键值对数据等,因此由于利用了请求体,post将能否传递更多的数据。

 

 

响应报文:

 

HTTP/1.1 200 OK
Date: Sat, 31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122

<html>
<head>
<title>Wrox Homepage</title>
</head>
<body>
<!-- body goes here -->
</body>
</html>

响应行:协议版本+响应码+简单摘要

响应头:由【key:value】键值对描述,描述着响应的基本信息

如Date响应时间   contentType:application/json  表示响应体的内容格式

空行

响应体:存放具体的响应内容

 

传统的http协议采取的是明文传输,传输过程很同意被截取查看以及修改。

因此https协议基于http协议在其外层套上ssl层,实现传输过程的加密,以及网站身份认证。

ssl协议:安全套接字协议,其通过对称加密,分对称加密,证书等技术实现安全传输和身份鉴别过程。