「 超文本传输协议 」 (英语: 「 H 」 yper 「 T 」 ext 「 T 」 ransfer 「 P 」 rotocol,缩写: 「 HTTP 」 )是一种用于分布式、协作式和超媒体信息系统的应用层协议。-- 摘自维基百科
?? 超文本指不单单是文本,还可以传输图片、音频、视频、文字或者图片上的超链接;
? 将超文本(数据包)从一端发送给另一端的过程,通常将发送数据包的一端称为 请求方
,接收数据包的一端称为 应答方
。
? 协议是指网络中传递、管理信息的一些规范。即计算机之间相互通信所需要共同遵守的规则。
HTTP 协议传输内容是明文传输的,没有进行任何加密;
HTTP 协议是无状态协议,即会话过程中不会记忆会话的双方;
?
HTTPS 就是在 HTTP 协议的基础上增加了 SSL/TLS 加密协议。
?
SSL/TLS
? 」
因为 HTTP 是明文传输内容,容易造成所传输的数据被监听(因为会经过多个物理设备节点)或被篡改( 中间人攻击
)
SSL/TLS
加密的原理: 」客户端发起一个请求给服务端;
pubkey
privatekey
CA数字证书
pubkey
);key
),然后使用公钥( pubkey
)对这个随机数进行加密后发送给服务端;privatekey
)对收到的随机数密文进行解密得到 key
;key
进行加密后再传输;HTTP 使用的默认端口是 80,HTTPS 使用的是 443;
HTTP 传输数据是明文的,不安全。HTTPS 是加密后传输的(采用非对称加密和对称加密结合的形式);
http://
开头,HTTPS 以 https://
开头;get
方法一般用于发起获取资源请求;post
方法一般用作表单提交,即将数据推送给服务端;get
方法请求的参数是拼接在 URL 后的,这对用户来说是可见的,容易被窃取也不太安全;post
方法请求的参数放置在请求体 body 中,用户不可直接查看;get
请求传递的参数不能过多,而 post
没有要求;get
请求会被浏览器主动缓存(cache),而 post
需要手动设置;post
在发起请求时,会发送两个 TCP 数据包,第一个先发送 header,等服务端响应 100 的时候,再发送 data;Cookie
由于存放在本地,容易被人分析本地的值后进行 Cookie
欺骗;
Cookie
Cookie
Cookie
Session
Session
就会消失,而 Cookie
会继续存在本地直到过期;?
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。-- 摘自维基百科
?
TCP 通过三次握手和四次挥手来控制连接的建立和断开。
SYN(seq=x)
报文给服务器,然后进入 SYN_SEND
状态;
SYN
SYN(seq=y)
ACK(ack=x+1)
SYN_RECV
SYN
报文后,再回应一个 ACK(ack=y+1)
,如此就成功建立连接,并开始传输数据;TCP 连接的断开需要发送4个包,可以由连接的任意一方先发起,以下假设客户端先发起断开。
FIN_WAIT_1
状态;
FIN
CLOSE_WAIT
FIN_WAIT_2
LAST_ACK
状态;TIME_WAIT
状态,服务器收到这个确认包后,关闭连接并进入 CLOSE
状态。? 因为最少要经过3次连接才能确认双方都可正常接收和发送数据,多于3次则无必要。
原文转自:http://www.cnblogs.com/tester-xt/p/12892957.html