HTTP(一):必须了解的基础概念

136 阅读5分钟

TCP/IP协议(互联网协议)

概念

  1. TCP协议(传输控制协议):应用程序之间的通信
  2. IP协议(网际协议):计算机之间的通信,计算机用来相互识别的通信机制。

作用

  1. TCP/IP就是TCP和IP两个协议在一起协同工作,有上下层次的关系;
  2. TCP负责将数据分割并装入IP包,IP负责将包发送至接收者。IP负责在因特网上发送与接收包;
  3. TCP确保数据包以正确的次序到达,并且尝试确认数据包的内容没有改变;
  4. IP协议仅仅是允许计算机相互发消息,但它并不检查消息是否以发送的次序到达而且没有损坏(只检查关键的头数据)。为了提供消息检验功能,直接在IP协议上设计了传输控制协议TCP。

HTTP协议(超文本传输协议)

概念

HTTP是客户端浏览器或其他程序与web服务器之间的应用层通信协议。浏览器通过超文本传输协议(HTTP),将web服务器上站点的网页代码提取出来,并翻译成网页。

HTTP协议技术

  1. 永远都是客户端发起请求,服务器回送响应;
  2. 无状态的协议HTTP是一种无状态协议。协议自身不对请求和响应之间的通信状态进行保存;
  3. Cookie管理状态,cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态。常用的token等。
  4. URI定位资源 HTTP协议使用URI定位互联网上的资源;
  5. 持久链接 只要任意一端没有明确提出断开连接,则保持TCP连接状态。旨在建立一次TCP链接后进行多次请求和响应的交互。在HTTP/1.1中,所有的连接默认都是持久连接;
  6. 管线化 同时并行发送多个请求,不需要一个接一个的等待响应。chrome最大限制是6个并发,全部请求完之后开始下一批请求。

HTPP工作过程

  1. 地址解析:域名系统DNS解析域名,得到主机的IP地址。优化方法:DNS预解析。
  2. 封装HTTP请求数据包;
  3. 封装成TCP包,建立TCP连接(TCP的三次握手);
  4. 客户端向服务器发送请求命令:建立TCP连接后,客户端发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后面是MIME信息包括修饰符、客户端信息和内容;
  5. 服务器响应:服务器接到请求后,给予相应的响应信息,其格式为一个状态行;
  6. 服务器关闭TCP连接。

HTTP的请求方法

GET: 获取URL指定的资源;
POST:传输实体信息
PUT:上传文件
DELETE:删除文件 
HEAD:获取报文首部,与GET相比,不返回报文主体部分 
OPTIONS:询问支持的方法
TRACE:追踪请求的路径; 
CONNECT:要求在与代理服务器通信时建立隧道,使用隧道进行TCP通信。主要使用SSL和TLS将数据加密后通过网络隧道进行传输。

HTTP缺点

  • 通信使用明文,容易被窃听;
  • 不验证通信方的身份,可能遭遇伪装;
  • 无法正迷茫报文的完整性,有可能遭遇篡改。

HTTPS协议(超文本传输安全协议)

概念

HTTPS是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,利用SSL/TLS来加密数据包;其提供了对网站服务器的身份认证,保护交互数据的隐私和完整性。 加密方式采用的是非对称加密

作用

  1. 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全;
  2. 对网站服务器进行真实身份认证。

缺点

  1. HTTPS协议握手阶段比较费时,会使页面的加载时间延长近50%,增加10%到20%的耗电;
  2. https连接缓存不如http高效,如果是大流量网站,则会造成流量成本太高
  3. https连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本,如果全部采用https,基于大部分计算资源闲置的假设的VPS的平均成本会上去。
  4. SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用。
  5. SSL证书通常需要绑定IP,不能再同一IP上绑定多个域名,IPv4资源不可能支撑这个消耗(SSL有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持,Windows XP就不支持这个扩展,考虑到XP的装机量,这个特性几乎没用)。 处。

优化

  1. CDN接入
  2. 会话缓存
  3. 硬件加速
  4. 远程解密
  5. SPDY/HTTPS

HTTP与HTTPS的区别

  1. HTTP 是明文传输,HTTPS 通过 SSL\TLS 进行了加密
  2. HTTP 的端口号是 80,HTTPS 是 443
  3. HTTPS 需要到 CA 申请证书,一般免费证书很少,需要交费
  4. HTTP 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 HTTP 协议安全。