HTTP是面向事务,无状态的服务器传输超文本到本地浏览器的明文传送协议,端口号80
HTTPS是SSL+http构建的有加密传输,身份认证的网络协议,SSL(安全套接字协议)的作用是对数据进行加密,比http安全,端口号443
面向事务:保持整个请求被完全请求或者完全不请求。
无状态:不保留之前一切请求或响应报文的信息。采用了session(ser)或cookies(cli)来记录一定的客户信息,解决无状态问题。
http1.0每次命令和应答都会触发TCP连接的连接建立和断开。
http1.1允许一个连接上发送多个命令和应答。
http1.1支持管线化,实现多个请求不需要等待相应应答都能写入socket的技术。优点:减少了cpu和内存占用(同一时间启动了更少的连接),减轻了网络拥塞(建立了更少的连接)。
http长连接指的是同一个tcp连接去发送和接收多个http请求和相应。
http本身无连接,底层是面向连接的TCP连接。
http报文结构
方法 URL 版本 CRLF(回车换行)---------》请求报文
版本 状态码 短语 CRLF ----------》响应报文
HTTP状态码信息:
1xx表示通知信息
2xx表示接收成功
3xx表示重定向,还需采取进一步行动
301被请求的资源被永久的移动到了新位置
302请求的资源临时从不同的URL响应请求
303当前请求的相应在另一个URl被找到,客户端采用GET的方式访问那个资源
4xx错误类型,客户差错
5xx服务器错误
https传输,两种基本加密解密算法类型:
对称:密钥只有一个,加密解密同一密码,加解密速度快DES,AES
非对称:密钥成对出现,加密解密不同密钥,公钥加密私钥解密,私钥加密公钥解密。加密算法RSA,DSA。
https客户端服务端通信过程:
1.客户端请求https连接,服务端返回证书(公钥,非对称密钥)
2.客户端产生随机(对称)密钥
3.客户端使用公钥对对称密钥加密
4.客户端发送加密后的对称密钥,服务器用私钥解密获得对称密钥
5.通过对称密钥加密的密文通信
服务器返回给客户端的数字证书是无法伪造的,防止了中间劫持。
动态页面:网页里面有程序代码,通过后台程序和web服务器的信息交互,由后台数据库实时更新数据和数据查询。
Get是向服务器发索取数据的一种请求;Post是向服务器提交数据的一种请求,要提交的数据位于信息头后面的实体中。
详细了解HTTPS: http://www.tuicool.com/articles/QjMFBj3
HTTP2.0:不改变HTTP语义,状态码,URL,首部字段等信息,提高了传输速度,实现了低延迟,高吞吐量等。
做法是在应用层和传输层之间增加了一个二进制分帧层,使得所有的消息传输被分为更小的消息或帧,对他们采用二进制编码,首部信息在Header帧,body在数据帧,数据流以消息形式发送,一个消息有一个或几个数据帧,乱序发送后根据帧首部重组,HTTP2.0中客户端和服务器端使用“首部表”跟踪储存之前发送的键值-对,对于之前发送的数据,通信期间不改变键值--对,只需发送一次,在头部改变的情况下,首部表就会更新。所有2.0请求都在一个TCP连接上传输,提高效率。
关于HTTP2.0详谈:http://www.alloyteam.com/2015/03/http2-0-di-qi-miao-ri-chang/