1支持客户端/服务器模型。
2是简单快速:服务器当客户端请求服务时,只需传送请求方法和路径。请求方法常用的GET,HEAD,POST。每种方法规定了客户端与服务器联系的是不同的类型。
因为简单的HTTP协议,使程序的小HTTP服务器,因而通信速度很快。
3灵活。 HTTP允许任何类型的数据对象的传输。输入被传输的内容类型进行标记。
4无连接:无连接是限制每个连接只有一个请求的意思。在服务器处理完客户的请求,并收到客户的反应,即断开。通过这种方式可以节省传输时间。
5无状态:。 HTTP协议是无状态的协议。没有一个国家是没有协议的事务处理和存储能力。如果该状态是指由于缺乏必要前述信息的后续处理中,它必须被重传,这可能导致在数据传输增加了每个连接。另一方面,当不需要在服务器上的快速响应的先验信息。虽然上面进行复制,但不可否认的是,这是最合适的答案,虽然用户自己写互惠互利的主张,但内容丰富太弱。如果我没有满意的答案楼主,可以百度,很多。例如,如果一个更精确的答案,请问楼主采纳。
HTTP协议主要特点包括如下:
HTTP怎么保持持久连接?
Keep-Alive实现:
通过请求的头部字段:Connection,time,max来实现持久连接。
如:Connection:Keep-Alive,time :20,max:10
time:表示第一次http请求发起之后20秒内不断开,并且之后相同host的请求都用同一个http连接通道进行通信;
max:表示最大可以连接的请求数量。
怎么判断HTTP持久连接断开?
HTTP持久连接断开时服务端会通过响应报文的请求头字段的Connect-Length 、chunked来告诉客户端持久连接已经断开了。
Cookie/Session
由于HTTP的无状态特点,缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
为了解决这种重复上传的问题,于是有了Cookie/Session的技术解决方案:
Cookie用于客户端,可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。
与 Cookie 相对的一个解决方案是 Session,它是通过服务器来保持状态的。
HTTP协议特点参考资料: 深入理解http协议的特点
HTTP是不安全的,因为服务端未检查客户端的有效性,这样很可能被中间人拦截伪装客户端向服务端发送请求。
HTTPS在HTTP传输层之上加了一个安全层(SSL或TLS协议实现),可以做到以下3点:
1. 数据的保密性
2. 校验双方身份的真实性
3. 数据的完整性
HTTPS连接建立流程:
通过上面HTTPS连接建立流程分析,大致可以分为下面5个步骤:
上面说了加密,保证了数据不能被他人读取,但通信的双方怎样校验对方的身份呢?HTTPS使用了数字证书,数字证书就是身份认证机构(Certificate Authority)盖在数字身份证上的一个章或印(或者说加在数字身份证上的一个签名),这一行为表示身份认证机构已认定这个人。证书的合法性可以向CA验证。
客户端收到服务器的响应后,先向CA验证证书的合法性(根据证书的签名、绑定的域名等信息),如果校验不通过,浏览器会中止连接,向用户提示证书不安全。
HTTPS了两种加密方式: 对称加密和非对称加密 。
以下是非对称加密的过程:
发送方通过公钥对数据进行加密,将加密数据传给接收方,接收方通过私钥进行解密得到相应的数据;这种加密和解密用的钥匙不一样的方式叫做非对称加密。
非加密方式是安全的,因为私钥在服务端本地的,并没有在网络上传输,即使客户端的公钥被篡改了,通过私钥也解析不出来,但是这种方式的缺点是耗时比较长;
以下是对称加密的流程:
发送方通过秘钥(会话秘钥)对数据进行加密,接收方也通过相同的秘钥进行解密,这种发送方和接收方用同样秘钥加解密的方式叫做对称加密。
秘钥是通过非对称加密连接的时候生成的,已经保证了客户端的安全性,所以在数据传输过程中可以认为数据是安全的。
参考资料: 关于HTTPS,你需要知道的全部
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)