什么是http?
HTTP 是一个用在计算机世界里的协议,它确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式。
HTTP 专门用来在两点之间传输数据,不能用于广播、寻址或路由。
HTTP 传输的是文字、图片、音频、视频等超文本数据。
HTTP 是构建互联网的重要基础技术,它没有实体,依赖许多其他的技术来实现,但同时许多技术也都依赖于它。
http发展
HTTP/0.9 结构比较简单,为了便于服务器和客户端处理,它也采用了纯文本格式。蒂姆·伯纳斯 - 李最初设想的系统里的文档都是只读的,所以只允许用 GET 动作从服务器上获取 HTML 文档,并且在响应请求之后立即关闭连接,功能非常有限
HTTP/1.0
增加了 HEAD、POST 等新方法; 增加了响应状态码,标记可能的错误原因; 引入了协议版本号概念; 引入了 HTTP Header(头部)的概念,让 HTTP 处理请求和响应更加灵活; 传输的数据不再仅限于文本。 但是并没有太大意义
HTTP/1.1
增加了 PUT、DELETE 等新的方法; 增加了缓存管理和控制; 明确了连接管理,允许持久连接; 允许响应数据分块(chunked),利于传输大文件; 强制要求 Host 头,让互联网主机托管成为可能。 HTTP/2
二进制协议,不再是纯文本; 可发起多个请求,废弃了 1.1 里的管道; 使用专用算法压缩头部,减少数据传输量; 允许服务器主动向客户端推送数据; 增强了安全性,「事实上」要求加密通信。
cdn ?
浏览器和服务器是 HTTP 协议的两个端点,那么,在这两者之间还有别的什么东西吗?
当然有了。 浏览器通常不会直接连到服务器 ,中间会经过「重重关卡」,其中的一个重要角色就叫做 CDN。
CDN,全称是 Content Delivery Network ,翻译过来就是 内容分发网络 。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求 。
CDN 有什么好处呢?
简单来说,它可以缓存源站的数据,让浏览器的请求不用千里迢迢地到达源站服务器,直接在半路就可以获取响应。如果 CDN 的调度算法很优秀,更可以找到离用户最近的节点,大幅度缩短响应时间。
打个比方,就好像唐僧西天取经,刚出长安城,就看到阿难与迦叶把佛祖的真经递过来了,是不是很省事?
CDN 也是现在互联网中的一项重要基础设施,除了基本的网络加速外,还提供负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍地「放大」源站服务器的服务能力,很多云服务商都把 CDN 作为产品的一部分,我也会在后面用一讲的篇幅来专门讲解 CDN。
键入网址再按下回车,后面究竟发生了什么?
这是一个常问的面试题
假如这个网址是域名 首先要 先解析域名 再建立tcp
假如网址是ip地址的话,首先要做的就是建立 TCP 连接(使用 三次握手 建立与 Web 服务器的连接),服务器收到请求并进行处理,服务器返回一个响应,浏览器对该响应进行解码,渲染显示。
|