HTTP -- 认识HTTP和HTTP相关组件(网络模型游览器Web服务器CDNWAFWeb ServiceHTMLWeb页面的构成)
Posted CodeJiao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP -- 认识HTTP和HTTP相关组件(网络模型游览器Web服务器CDNWAFWeb ServiceHTMLWeb页面的构成)相关的知识,希望对你有一定的参考价值。
文章目录
1. 认识HTTP
HTTP是一种超文本传输协议(HyperText Transfer Protocol,HTTP)
超文本传输协议可以进行文字分割:超文本(Hypertext)、传输(Transfer)、协议(Protocol) ,它们之间的关系如下:
下面从这3个维度来解释HTTP协议。
1.1 超文本
随着互联网的高速发展,两台电脑之间能够进行数据的传输后,人们不满足只能在两台电脑之间传输文字,还想要传输图片、音频、视频,甚至点击文字或图片能够进行超链接的跳转,那么文本的语义就被扩大了,这种语义扩大后的文本就被称为超文本(Hypertext)。
1.2 传输
两台计算机之间会形成互联关系进行通信,我们存储的超文本会被解析成为二进制数据包,由传输载体(例如同轴电缆,电话线,光缆)负责把二进制数据包由计算机终端传输到另一个终端的过程称为传输(transfer)。
通常我们把传输数据包的一方称为请求方,把接到二进制数据包的一方称为应答方。请求方和应答方可以进行互换。
1.3 协议
网络协议就是网络中传递、管理信息的一些规范。
HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。
2. 与HTTP相关的组件
2.1 网络模型
网络是一个复杂的系统,不仅包括大量的应用程序、端系统、通信链路、分组交换机等,还有各种各样的协议组成。
网络设计者以分层(layer)的方式组织协议,每个协议属于层次模型之一。每一层都是向它的上一层提供服务(service),即所谓的服务模型(service model)。每个分层中所有的协议称为协议栈(protocol stack)。因特网的协议栈由五个部分组成︰物理层、链路层、网络层、运输层和应用层。
2.1.1 应用层(报文)
应用层是网络应用程序和网络协议存放的分层。因特网的应用层包括许多协议,例如我们学web离不开的 HTTP ,电子邮件传送协议SMTP、端系统文件上传协议FTP、还有为我们进行域名解析的DNS协议。应用层协议分布在多个端系统上,一个端系统应用程序与另外一个端系统应用程序交换信息分组,我们把位于应用层的信息分组称为报文(message)。
2.1.2 运输层(报文段)
因特网的运输层在应用程序之间传送应用程序报文。在这一层主要有两种传输协议TCP和UDP,利用这两者中的任何一个都能够传输报文,不过这两种协议有巨大的不同。我们把运输层的分组称为报文段(segment)。
- TCP向它的应用程序提供了面向连接的服务,它能够控制并确认报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。
- UDP协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控制。
2.1.3 网络层(数据报)
因特网的网络层负责将称为数据报(datagram)的网络分层从一台主机移动到另一台主机。
网络层一个非常重要的协议是IP协议,所有具有网络层的因特网组件都必须运行IP协议,IP协议是一种网际协议,除了IP协议外,网络层还包括一些其他网际协议和路由选择协议,一般把网络层就称为IP层,由此可知IP协议的重要性。
2.1.4 链路层(帧)
现在我们有应用程序通信的协议,有了给应用程序提供运输的协议,还有了用于约定发送位置的IP协议,那么如何才能真正的发送数据呢?
为了将分组从一个节点(主机或路由器)运输到另一个节点,网络层必须依靠链路层提供服务。链路层的作用是将帧从一个端系统运输到另一个端系统。
链路层包括以太网、WiFi和电缆接入的 DOCSIS协议,因为数据从源目的地传送通常需要经过几条链路,一个数据包可能被沿途不同的链路层协议处理。
我们把链路层的分组称为帧(frame)
2.1.5 物理层(比特)
物理层的作用是将帧中的一个个比特从一个节点运输到另一个节点,物理层的协议仍然使用链路层协议,这些协议与实际的物理传输介质有关,例如,以太网有很多物理层协议:关于双绞铜线、关于同轴电缆、关于光纤等等。
2.2 OSI模型
我们上面讨论的计算网络协议模型不是唯一的协议栈,ISO(国际标准化组织)提出来计算机网络应该按照7层来组织,那么7层网络协议栈与5层的区别在哪里?
OSI 要比上面的网络模型多了表示层和会话层,其他层基本一致。
- 表示层主要包括数据压缩和数据加密以及数据描述,数据描述使得应用程序不必担心计算机内部存储格式的问题,
- 会话层提供了数据交换的定界和同步功能,包括建立检查点和恢复方案。
2.3 游览器
浏览器正式的名字叫做 Web Broser,顾名思义,就是检索、查看互联网上网页资源的应用程序,名字里的 Web,实际上指的就是World Wide Web ,也就是万维网。
我们在地址栏输入URL(即网址),浏览器会向DNS(域名服务器)提供网址,由它来完成URL到I地址的映射。然后将请求你的请求提交给具体的服务器,在由服务器返回我们要的结果(以html编码格式返回给浏览器),浏览器执行HTML编码,将结果显示在浏览器的正文。这就是一个浏览器发起请求和接受响应的过程。
2.4 Web服务器
Web服务器的正式名称叫做Web Server,Web服务器一般指的是网站服务器,上面说到浏览器是HTTP请求的发起方,那么Web服务器就是HTTP请求的应答方,Web 服务器可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、nginx 、llS。
2.5 CDN(内容分发网络)
CDN的全称是Content Delivery Network ,即内容分发网络,它应用了HTTP协议里的缓存和代理技术,代替源站响应客户端的请求。CDN是构建在现有网络基础之上的网络,它依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。
2.6 WAF(Web应用程序防护系统)
WAF是一种 Web应用程序防护系统(Web Application Firewall,简称WAF),它是一种通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,它是应用层面的防火墙,专门检测HTTP流量,是防护Web 应用的安全技术。
WAF通常位于Web服务器之前,可以阻止如SQL注入、跨站脚本等攻击,目前应用较多的一个开源项目是ModSecurity,它能够完全集成进Apache或Nginx。
2.7 HTML(超文本标记语言)
HTML(HyperText Mark-up Language)称为超文本标记语言,是一种标识性的语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。
2.8 Web 页面构成
Web页面(Web page)也叫做文档,是由一个个对象组成的。一个对象只是一个文件,比如一个HTML文件、一个JPEG图形、一个Java小程序或一个视频片段,它们在网络中可以通过URL地址寻址。
2.9 Web Service
Web Service是一种 Web应用程序,Web Service是一种跨编程语言和跨操作系统平台的远程调用技术。
Web Service是一种由W3C定义的应用服务开发规范,使用client-server主从架构,通常使用WSDL定义服务接口,使用 HTTP协议传输XML或SOAP消息,它是一个基于Web (HTTP)的服务架构技术,既可以运行在内网,也可以在适当保护后运行在外网。
以上是关于HTTP -- 认识HTTP和HTTP相关组件(网络模型游览器Web服务器CDNWAFWeb ServiceHTMLWeb页面的构成)的主要内容,如果未能解决你的问题,请参考以下文章
Linux篇第二十篇——HTTP协议(认识协议+HTTP协议+HTTPS)
Linux篇第二十篇——HTTP协议(认识协议+HTTP协议+HTTPS)