【HTTP】http协议【更新中...

1. http发展史

  1. HTTP协议始于三十年前蒂姆·伯纳斯-李的一篇论文;
  2. HTTP/0.9是个简单的文本协议,只能获取文本资源;
  3. HTTP/1.0确立了大部分现在使用的技术,但它不是正式标准;
  4. HTTP/1.1是目前互联网上使用最广泛的协议,功能也非常完善;
  5. HTTP/2基于Google的SPDY协议,注重性能改善,但还未普及;
  6. HTTP/3基于Google的QUIC协议,是将来的发展方向。

2.http是什么?

http:超文本传输协议
协议:HTTP是一个用在计算机世界里的协议。它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
传输:
HTTP是一个在计算机世界里专门用来在两点之间传输数据约定和规范
超文本:包括了文字、图片、音频、视频等的混合体,还可能是超链接,html也是超文本
http不是什么?
http是一种协议,是计算机间通信的规范,所以不存在“单独的实体”,时发生在网络连接、传输超文本数据时的一个“动态过程”
http不是互联网
http不是编程语言,编程语言是人与计算机之间交流使用的语言,而http是计算机和计算机之间沟通的语言,我们无法使用http来编程,但是我们可以通过编程语言实现http,告诉计算机如何使用http来与外界通信
http不是html
http不是一个孤立的协议,它通常跑在TCP/IP上,依靠IP协议实现寻址和路由等


  1. HTTP是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
  2. HTTP专门用来在两点之间传输数据,不能用于广播、寻址或路由。
  3. HTTP传输的是文字、图片、音频、视频等超文本数据。
  4. HTTP是构建互联网的重要基础技术,它没有实体,依赖许多其他的技术来实现,但同时许多技术也都依赖于它。

3.与HTTP相关的各种概念

互联网:

Internet,里面存储着无穷无尽的信息资源,我们通常说的“上网”实际上访问的只是互联网的一个子集“万维网”(World Wide Web),它基于HTTP协议,传输HTML等超文本资源,能力也就被限制在HTTP协议之内
互联网上还有许多万维网之外的资源,例如常用的电子邮件、各种即时通信服务等,都需要各自的专有协议来访问
但是由于HTTP协议很灵活、易拓展、且“超文本”表述能力很强,所以很多其他原本不属于HTTP的资源也可以“包装”成HTTP来访问,这就是为什么我们总能看到各种“网络应用”–例如“微信网页版”“邮箱网页版”的原因。
综合来看, 现在互联网90%以上部分都被万维网,也就是HTTP所覆盖

浏览器

Web Browser 检索、查看互联网上网页资源的应用程序,Web即万维网
浏览器的本职是HTTP协议中的请求方,使用HTTP协议获取网络上的各种资源。
在HTTP协议里,浏览器被称为“User Agent”用户代理,意思是通过作为访问者的“代理”来发起HTTP请求。不过在不引起混淆的情况下,我们都简单的称之为“客户端”

Web服务器

Web Server,是HTTP协议里面响应请求的主体,通常也把控着绝大对数的网络资源,在网络世界处于强势地位。
Web服务器包括两方面的含义:硬件和软件
硬件:物理形式或者“云”形式的机器,在大多数情况下看它可能不是一台机器,而是利用反向代理、负载均衡等技术组成的庞大集群,但从外界来看,它仍然表现为一台机器,但这个形象是“虚拟的”
软件提供Web服务上的应用程序,通常会运行在硬件含义内的服务器上,通过强大的硬件能力响应海量客户端HTTP请求,处理磁盘上的网页、图片等静态文件,或者把请求转发给后面的Tomcat、Node.js等业务应用,返回动态的信息。
常见的Web服务器:Apache、Nginx、还有Windows上的IIS、Java的Jetty/Tomcat等

CDN

Content Delivery Network 内容分发网络 ,它应用了HTTP协议里面的缓存和代理技术,代替源站响应客户端的请求。
CDN的好处:可以缓存源站的数据,让浏览器的请求提前获得响应,大幅度缩短响应时间。CDN也是现在互联网中的一项重要基础设施,除了基本的网络加速外,还提供负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍地“放大”源站服务器的服务能力,很多云服务商都把CDN作为产品的一部分。

爬虫

前面说到过浏览器,它是一种用户代理,代替我们访问互联网。
但HTTP协议并没有规定用户代理后面必须是“真正的人类”,它也完全可以是“机器人”,这些“机器人”的正式名称就叫做“爬虫爬虫”(Crawler),实际上是一种可以自动访问Web资源的应用程序。
无论是“爬虫”还是“反爬虫”,用到的基本技术都是两个,一个是HTTP,另一个就是HTML。

HTML

HTML是HTTP协议传输的主要内容之一,描述了超文本页面,用各种“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。

Web Service

由W3C定义的应用服务开发规范,使用client-server主从框架,通常使用WSDL定义服务接口,使用HTTP协议传输XML或SOAP消息,也就是说,它是一个基于Web(HTTP)的服务架构技术,既可以运行在内网,也可以适当保护后运行在外网。
因为采用了HTTP协议传输数据,所以Web Service架构里面服务器和客户端可以采用不同的操作系统语言开发,具有跨屏套跨语言的优点。

WAF

网络应用防火墙。它是应用层面的“防火墙”,专门检测HTTP流量,是防护Web应用的安全技术。WAF通常位于Web服务器之前,可以阻止如SQL注入、跨站脚本等攻击


  1. 互联网上绝大部分资源都使用HTTP协议传输;
  2. 浏览器是HTTP协议里的请求方,即User Agent;
  3. 服务器是HTTP协议里的应答方,常用的有Apache和Nginx;
  4. CDN位于浏览器和服务器之间,主要起到缓存加速的作用;
  5. 爬虫是另一类User Agent,是自动访问网络资源的程序。

4. 与HTTP相关的各种协议

TCP/IP

TCP/IP实际上是一系列网络通信协议的统称,其中最核心的两个协议是TCP和IP,其他的还有UDP、ICMP\ARP等等,共同构成了一个复杂但有层次的协议栈
该协议栈一共有4层

  • 应用层
  • 传输层 TCP
  • 网络层 IP
  • 链路层
IP:Internet Protocol

解决寻址和路由问题,以及如何在两点间传送数据包。IP协议使用IP地址的概念来定位互联网上的每一台计算机

TCP协议 Transmission Control Protocol 传输控制协议

基于IP协议提供可靠的(保证数据不丢失)、字节流(保证数据完整)形式的通信,是HTTP协议得以实现的基础

DNS Domain Name System
  • 域名系统:用有意义的名字来作为IP地址的等价替代
  • 在DNS中,域名Domain Name又称为主机名Host
  • 域名用 . 分割成多个单词,级别从左到右逐级升高,最右边的被称为“顶级域名”。比如com cn等等
  • 域名解析:将域名映射到它的真实IP地址以通信
URI/URL
URI Uniform Resource Identifier 统一资源标识符

可以唯一的标记互联网上的资源

URL Uniform Resource Location 统一资源定位符

即俗称的网址 实际上是URI的一个子集 基本不做区别
URI一般由3个部分组成:
协议名:即访问该资源使用的协议 http
主机名:即互联网上主机的标记,可以是域名或者IP地址
路径:即资源在主机上的位置,用 / 分隔多级目录

HTTPS

HPPTS=“HTTP+SSL/TLS+TCP/IP” 运行在SSL/TLS协议上的HTTP
SSL/TCL:负责加密通信的安全协议,建立在TCP/IP之上
SSL能够在不安全的环境中为通信的双方创建出一个秘密的、安全的传输通道

代理 proxy

是HTTP协议中请求方和应答方中间的一个环节,作为“中转站”,既可以转发客户端的请求,也可以转发服务器的应答
常见代理种类:

  • 匿名代理:完全“隐匿”了被代理的机器,外界看到的只是代理服务器
  • 透明代理:在传输的过程中是“透明开放”的,外界不仅知道代理,也知道客户端
  • 正向代理:靠近客户端,代表客户端向服务器发送请求
  • 反向代理:靠近服务器端,代表服务器响应客户端的请求

在该环节可以进行:

  • 复杂均衡:把访问请求均匀分散到多台机器,实现访问集群化
  • 内容缓存:暂存上下行的数据,减轻后端的压力
  • 安全防护:隐匿IP,使用WAF等工具低于网络攻击,保护被代理的机器
  • 数据处理:提供压缩、加密等额外的功能

  1. TCP/IP是网络世界最常用的协议,HTTP通常运行在TCP/IP提供的可靠传输基础上;

  2. DNS域名是IP地址的等价替代,需要用域名解析实现到IP地址的映射;

  3. URI是用来标记互联网上资源的一个名字,由“协议名+主机名+路径”构成,俗称URL;

  4. HTTPS相当于“HTTP+SSL/TLS+TCP/IP”,为HTTP套了一个安全的外壳;

  5. 代理是HTTP传输过程中的“中转站”,可以实现缓存加速、负载均衡等功能。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值