2 与HTTP相关的各种概念
1 与HTTP相关的各种应用
1 网络世界
互联网(Internet)里面存储着无穷信息资源,我们说的上网只是访问互联网的一个子集,万维网(World Wide Web),它基于HTTP协议,传输 HTML 等超文本资源,能力也被限制在HTTP协议之内。
互联网除了万维网的资源外,还有电子邮件、BT和Magnet点对点下载、FTP文件下载、SSH安全登录、各种即时通信服务等等,它们需要用各自的专有协议来访问。
但是HTTP协议灵活,易于扩展,所以原本不属于HTTP的资源也可以包装成 HTTP来访问,这就是为什么我们总能看到各种网页应用,如微信网页版,邮箱网页版。
2 浏览器
浏览器:Web Browser,其中的Web指 World Wide Web。
本质是HTTP协议中的请求方,被称为 User Agent 即 用户代理,意思是作为访问者的“代理”来发起HTTP请求。
不过在不引起混淆的情况下,称之为 客户端。
3 Web服务器
Web服务器:Web Server。
HTTP协议中的应答方。包含硬件和软件两个层面。
硬件,物理形式或“云”形式的机器,通常是利用反向代理、负载均衡等技术组成的庞大集群。
软件,提供Web服务的应用程序,通常会运行在硬件含义的服务器上。
常见的web服务器:
- Apache 老牌服务器
- Nginx 高性能,高稳定,易于拓展
- Window上的IIS,Java的Jetty/Tomcat 性能不高
4 CDN
浏览器和服务器是HTTP协议的两个端点,两者之间还有一个重要角色:CDN。
CDN,全称是Content Delivery Network,翻译过来就是内容分发网络。它应用了 HTTP 协议里的缓存和代理技术,代替源站响应客户端的请求。
CDN 可以缓存源站的数据,让浏览器的请求不用“千里迢迢”地到达源站服务器,直接在“半路”就可以获取响应。如果 CDN 的调度算法很优秀,更可以找到离用户最近的节点,大幅度缩短响应时间。
CDN 除了基本的网络加速外,还提供负载均衡、安全防护、边缘计算、跨运营商网络等功能,能够成倍地“放大”源站服务器的服务能力,很多云服务商都把 CDN 作为产品的一部分。
5 爬虫
HTTP协议的 User Agent 不必须是人,也可以是机器人,这些机器人正式名称就叫做 “爬虫”(Crawler)。
爬虫绝大多数是各大搜索引擎放出来的,抓取网页存入庞大数据库,再建立关键字索引,这样就能从搜索引擎中快速地搜索到某个页面。
坏处:过度消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,导致敏感信息泄漏。
2 与HTTP相关的各种协议
1 HTML
HTML 是 HTTP 协议传输的主要内容之一,它描述了超文本页面,用各种“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。
HTML 目前有两个主要的标准,HTML4 和 HTML5。
广义上的 HTML 通常是指 HTML、JavaScript、CSS 等前端技术的组合,能够实现比传统静态页面更丰富的动态页面
2 编程语言
JavaScript,CSS,PHP,Python 等。
3 WebService
Web Service,它的名字与 Web Server 很像,但却是一个完全不同的东西。
Web Service 是一种由 W3C 定义的应用服务开发规范,使用 client-server 主从架构,通常使用 WSDL 定义服务接口,使用 HTTP 协议传输 XML 或 SOAP 消息,也就是说,它是一个基于 Web(HTTP)的服务架构技术,既可以运行在内网,也可以在适当保护后运行在外网。
因为采用了 HTTP 协议传输数据,所以在 Web Service 架构里服务器和客户端可以采用不同的操作系统或编程语言开发。
例如服务器端用 Linux+Java,客户端用 Windows+C#,具有跨平台跨语言的优点。
4 WAF
WAF 是“网络应用防火墙”。与硬件“防火墙”类似,它是应用层面的“防火墙”,专门检测 HTTP 流量,是防护 Web 应用的安全技术。
WAF 通常位于 Web 服务器之前,可以阻止如 SQL 注入、跨站脚本等攻击,目前应用较多的一个开源项目是 ModSecurity,它能够完全集成进 Apache 或 Nginx。
浙公网安备 33010602011771号