TCP/IP协议(互联网协议)
概念
- TCP协议(传输控制协议):应用程序之间的通信
- IP协议(网际协议):计算机之间的通信,计算机用来相互识别的通信机制。
作用
- TCP/IP就是TCP和IP两个协议在一起协同工作,有上下层次的关系;
- TCP负责将数据分割并装入IP包,IP负责将包发送至接收者。IP负责在因特网上发送与接收包;
- TCP确保数据包以正确的次序到达,并且尝试确认数据包的内容没有改变;
- IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否以发送的次序到达而且没有损坏(只检查关键的头数据)。为了提供消息检验功能,直接在IP协议上设计了传输控制协议TCP。
HTTP协议(超文本传输协议)
概念
HTTP是客户端浏览器或其他程序与web服务器之间的应用层通信协议。浏览器通过超文本传输协议(HTTP),将web服务器上站点的网页代码提取出来,并翻译成网页。
HTTP协议技术
- 永远都是客户端发起请求,服务器回送响应;
- 无状态的协议HTTP是一种无状态协议。协议自身不对请求和响应之间的通信状态进行保存;
- Cookie管理状态,cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。常用的token等。
- URI定位资源 HTTP协议使用URI定位互联网上的资源;
- 持久链接 只要任意一端没有明确提出断开连接,则保持TCP连接状态。旨在建立一次TCP链接后进行多次请求和响应的交互。在HTTP/1.1中,所有的连接默认都是持久连接;
- 管线化 同时并行发送多个请求,不需要一个接一个的等待响应。chrome最大限制是6个并发,全部请求完之后开始下一批请求。
HTPP工作过程
- 地址解析:域名系统DNS解析域名,得到主机的IP地址。优化方法:DNS预解析。
- 封装HTTP请求数据包;
- 封装成TCP包,建立TCP连接(TCP的三次握手);
- 客户端向服务器发送请求命令:建立TCP连接后,客户端发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后面是MIME信息包括修饰符、客户端信息和内容;
- 服务器响应:服务器接到请求后,给予相应的响应信息,其格式为一个状态行;
- 服务器关闭TCP连接。
HTTP的请求方法
GET: 获取URL指定的资源;
POST:传输实体信息
PUT:上传文件
DELETE:删除文件
HEAD:获取报文首部,与GET相比,不返回报文主体部分
OPTIONS:询问支持的方法
TRACE:追踪请求的路径;
CONNECT:要求在与代理服务器通信时建立隧道,使用隧道进行TCP通信。主要使用SSL和TLS将数据加密后通过网络隧道进行传输。
HTTP缺点
- 通信使用明文,容易被窃听;
- 不验证通信方的身份,可能遭遇伪装;
- 无法正迷茫报文的完整性,有可能遭遇篡改。
HTTPS协议(超文本传输安全协议)
概念
HTTPS是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,利用SSL/TLS来加密数据包;其提供了对网站服务器的身份认证,保护交互数据的隐私和完整性。 加密方式采用的是非对称加密。
作用
- 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
- 对网站服务器进行真实身份认证。
缺点
- HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;
- https连接缓存不如http高效,如果是大流量网站,则会造成流量成本太高
- https连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本,如果全部采用https,基于大部分计算资源闲置的假设的VPS的平均成本会上去。
- SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
- SSL证书通常需要绑定IP,不能再同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗(SSL有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持,Windows XP就不支持这个扩展,考虑到XP的装机量,这个特性几乎没用)。 处。
优化
- CDN接入
- 会话缓存
- 硬件加速
- 远程解密
- SPDY/HTTPS
HTTP与HTTPS的区别
- HTTP 是明文传输,HTTPS 通过 SSL\TLS 进行了加密
- HTTP 的端口号是 80,HTTPS 是 443
- HTTPS 需要到 CA 申请证书,一般免费证书很少,需要交费
- HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。