HTTP入门
HTTP是啥
HTTP:超文本传输协议
将超文本传输协议分为三部分解析:
协议
- 协:协议必须要有两个或多个参与者
- 议:协议是对参与者的一种行为约定和规范
总结:HTTP是一个用在计算机世界中的协议,它使用计算机能够理解的语言确立了一种计算机之间交流通信的规范,以及相关的各种控制和错误处理方式
传输
-
HTTP是一个双向协议
数据传输有请求方和响应方,数据在两点之间并不是单纯的单向流动,而是一个点发送请求数据给另一个点,然后另一个点将响应的数据发送回来,这是一个双向的过程
-
传输过程中可以中转
本来从A到B,现在A和B之间可以添加多个中间节点,这些中间节点必须遵从HTTP协议,只要不打扰基本的数据传输,就可以添加任意额外功能,如安全认证、数据压缩、编码转化等,优化整个传输过程
总结:HTTP 是一个在计算机世界中专门用来在两点间传输数据的
超文本
- 文本:表示HTTP传输的不是TCP/UDP这些底层协议中被切分的杂乱无章的二进制包,而是完整的、有意义的数据,可以被浏览器、服务器这样的上层应用程序处理
- 超文本:原来的文本只是简单的字符文字,而现在是文字、图片、视频、超链接等混合体,而超链接可以从一个超文本跳转到另一个超文本
总结:HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范
其他
HTTP是构建互联网的重要基础技术,他没有实体,以来其他许多技术来实现,但同时许多技术也都依赖于它
HTTP相关概念
网络世界
互联网
也就是Internet,存储着许多信息资源
包括万维网、电子邮件、BT、Magnet点对点下载、FTP文件下载等
万维网
基于HTTP协议,传输HTML等超文本资源,能力也就被限制在HTTP协议之内
浏览器
浏览器的正式名字叫“Web Browser”,顾名思义,就是检索、查看互联网上网页资源的应用程序,名字里的 Web,实际上指的就是“World Wide Web”,也就是万维网
浏览器本质上是一个HTTP协议中的请求方,使用HTTP协议获取网络上的各种资源。当然,为了让我们更好地检索查看网页,它还集成了很多额外的功能
Web服务器
HTTP协议中的应答方,也就是服务端
比如:Apache、Nginx等
CND
全称是内容分发网络,应用了HTTP协议中的缓存和代理技术,代替源站响应客户端的请求
好处:可以缓存源站数据,让浏览器不用千里迢迢到达源站服务器,而在半路可以获取响应,加快网络速度,不仅如此,还提供负载均衡、安全防护、边缘计算等功能
爬虫
一种可以自动访问Web资源的应用程序
作用:很多都是搜索引擎放出来的,抓取网页中庞大的数据库,在建立关键字索引,这样我们才能够在搜索引擎中快速的搜索到互联网中的各个页面
缺点:会过度消耗网络资源,占用服务器和带宽,影响网站对真实数据的分析,甚至导致敏感信息泄露
运用的基础信息:HTTP、HTML
HTTP相关协议
TCP/IP
该协议是目前网络世界事实上的标准通信协议
IP协议:主要目的是解决寻址和路由问题,以及如何在两点间传送数据包,该协议使用IP地址的概念来定位互联网上的每一台计算机
- IPV4:地址用4个”.”来分割数字,一共有232个地址
- IPV6:地址用8组”:”分隔的数字作为地址,容量扩充到8128个
TCP协议:传输控制协议,位于IP协议之上,基于IP协议提供可靠的、字节流形式的通信,是HTTP协议得以实现的基础,所以TCP协议两端可以如同操作文件一样访问传输的数据,就像是读写在一个密闭管道中流动的字节
- 可靠:保证数据不丢失
- 字节流:保证数据完整
DNS
DNS是域名系统
将IP地址跟易于理解的域名联系起来
URL和URI
URI:统一资源标识符,标记互联网上的资源
URL:统一资源定位符,俗称网址,是URI的一个子集
URL组成三部分:
- 协议名:访问该资源应当使用的协议,比如http
- 主机名:互联网上主机的标记,可以是域名或者IP地址
- 路径:资源在主机上的位置,使用/分隔多级目录
HTTPS
运行在SSL/TLS协议上的HTTP
SSL:Secure Socket Layer,网景公司发明,3.0时改名为TLS
使用了许多密码学先进的研究成果,综合了对称加密,摘要算法等技术,能够在不安全的环境中为通信双方船舰一个秘密的、安全的传输通道
代理
HTTP协议中请求方和应答方中间的一个环节,既可以转发客户端的请求,也可以转发服务器的应答
代理的分类:
- 匿名代理:完全隐匿了被代理的机器,外界只能看到代理服务器
- 透明代理:传输过程中透明开放,外界既知道代理,又知道客户端
- 正向代理:靠近客户端,代表客户端向服务器发送请求
- 反向代理:靠近服务器端,代表服务器响应客户端的请求
CND也是一种代理,他替代源站服务器响应客户端的请求,通常扮演透明代理和反向代理的角色
代理作用:
- 负载均衡:把访问的请求均匀分散到多台机器,实现访问集群化
- 内容缓存:暂存上下行的数据,减轻后端的压力
- 安全防护:隐匿IP,使用WAF等公交地狱网络攻击,保护被代理的机器
- 数据处理:提供压缩、加密等额外的功能
网络分层模型
TCP/IP网络分层协议
该协议共有四层,分别为链接层、网际层、传输层、运输层
-
链接层(MAC层):负责在以太网、WIFI这样的底层网络发送原始数据包,使用MAC地址来标记网络上的设备,所以也叫MAC层
-
网际层(网络互连层):IP协议所处层,在链接层基础上用IP地址取代MAC地址,把许许多多局域网、广域网连接成一个巨大的网络,在这里找设备只需把IP地址翻译成MAC地址
-
传输层:保证数据在IP地址标记的两点之间可靠的传输,是TCP所在层
TCP:一个有状态的协议,需要先与对方建立连接再发送数据,而且保证数据不丢失不重复,数据形式是有序的字节流,有先后顺序
UDP:没有状态,不需要建立连接才发数据,但是不保证数据一定能发送到对方,数据的形式是小数据包,顺序发,乱序收
-
应用层:由于下面三层打好了基础,所以这一层有各种面向具体应用的协议,如HTTP、FTP等
OSI网络分层模型
全称是开放式系统互联通信参考模型
国际标准组织设计的一个新的网络模型,不过并没有在实际网络上运行使用
该模型分为7层,分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
- 物理层:网络的物理形式,例如光纤网卡等
- 数据链路层:相当于TCP/IP的链接层
- 网络层:相当于TCP/IP中的网际层
- 传输层:相当于TCP/IP中的传输层
- 会话层:维护网络中的连接状态,既保持会话和同步
- 表示层:把数据转化为合适、可理解的语法和语义
- 应用层:面向具体的应用传输数据
两个分层模型的映射关系
- 第一层:物理层,TCP/IP中无对应的层
- 第二层:数据链路层,对应TCP/IP的链接层
- 第三层:网络层,对应TCP/IP的网际层
- 第四层:传输层,对应TCP/IP的传输层
- 第五层:对应TCP/IP的应用层
对比两个模型:
- OSI的分层模型在四层以上分的太细
- TCP/IP实际应用时的会话管理,编码转化,压缩等和具体应用经常联系的很紧密,很难分开
负载均衡:
- 四层负载均衡:工作在传输层上,基于TCP/IP协议的特性,例如IP地址、端口等实现对后端服务器的负载均衡
- 七层负载均衡:工作在应用层上,看到的是HTTP协议,解析HTTP报文中的URL、主机名、资源类型等数据,在用适当的策略转发给后端服务器
TCP/IP协议栈的工作方式
下层的传输过程对于上层来说是透明的,上层也不需要关心下层的具体实现细节