http是一种超文本传输协议。超文本传输协议,文字分割后为超文本(Hypertext),传输(Transfer)、协议(Protocol),他们之间有一定的关系。
什么是超文本
互联网早期,输入的信息只能保存在本地,无法和其他电脑交换信息。我们的信息都以文本即简单字符存在,文本是一种能被计算机解析的有意义的二进制数据包。随着互联网的迅速发展,人们不满足于只能在两台电脑之间传输文字,还想传输图片、音频、视频甚至进行超接跳转等,文本的含义扩大了,扩大后的文本称为超文本(Hypertext)
什么是传输
两台计算机进行互联通信,是通过传输载体(如同轴电缆,电话线,光缆)进行的,存储的超文本需要解析为二进制数据包,在传输载体上进行传输。称为传输。
如图为A,B两个系统进行通信的过程,他们通过请求和响应进行信息交换。
什么是协议
协议是多个人之间的一种阅读。
网络协议是网络中传递管理信息的一种规范。人与人交流需要遵循规矩,计算机通信也需要遵守规则,这些规则称为网络协议。
综上,HTTP是在计算机世界里,专门在两点间传输文字,图片,音频,视频等超文本数据的约定和规范。
与http有关的组件
网络模型
为了给忘了协议设计提供一个结构,以分层的方式组织协议。因特网协议栈由五部分组成:物理层,链路层,网络层,运输层和应用层。
每一层向上一层提供服务,每一层所有的协议称为协议栈。我们采用自上而下的方法研究其原理,即应用层->物理层。
应用层
应用层是网络应用程序和网络协议存放的分层,应用层包括很多协议,如web开发离不开的HTTP,电子邮件传送协议SMTP, 端系统文件上传协议 FTP
、还有为我们进行域名解析的 DNS
协议。应用层协议分布在多个端系统上,一个端系统应用程序与另外一个端系统应用程序交换信息分组,我们把位于应用层的信息分组称为 报文(message)
。
运输层
因特网的运输层在应用程序断点间传输应用程序报文,主要有TCP和UDP两种协议,利用两者中任何一个都能传送报文。二者的区别是:
TCP:向它的应用程序提供了面向连接的服务,它能够控制并确认报文是否到达,并提供了拥塞机制来控制网络传输,因此当网络拥塞时,会抑制其传输速率。
UDP:UDP 协议向它的应用程序提供了无连接服务。它不具备可靠性的特征,没有流量控制,也没有拥塞控制。我们把运输层的分组称为 报文段(segment)
网络层
因特网的网络层负责将称为 数据报(datagram) 的网络分层从一台主机移动到另一台主机。网络层一个非常重要的协议是 IP 协议,所有具有网络层的因特网组件都必须运行 IP 协议,IP 协议是一种网际协议,除了 IP 协议外,网络层还包括一些其他网际协议和路由选择协议,一般把网络层就称为 IP 层,由此可知 IP 协议的重要性。
链路层
链路层的例子包括以太网、WiFi 和电缆接入的 DOCSIS
协议,因为数据从源目的地传送通常需要经过几条链路,一个数据包可能被沿途不同的链路层协议处理,我们把链路层的分组称为 帧(frame)
物理层
物理层有很多协议,关于双绞铜线,同轴电缆,关于光纤。
浏览器
浏览器是使用http协议的主要载体
浏览器又叫做web broser。
在浏览器地址栏输入URL(即网址),浏览器会向DNS提供网址,URL->IP,然后请求提交给服务器。服务器返回HTML编码,浏览器执行HTML编码,显示正文。这就是浏览器发起请求和接受响应的过程。
Web 服务器
最主流的web服务器有三个,Apache,NGINX,IIS。web服务器是网站服务器,浏览器是http请求的发起方,web服务器是http请求的响应方。web服务器可以放置文件,让全世界浏览。
CDN
Contentn Delivery Network,内容分发网络。应用了http中的缓存和代理技术,使用户就近获取所需内容,降低网络拥塞。CDN关键技术有内容存储,分发技术。例如在亚马孙上买书,之前要从美国发货过海关重重关卡送到,现在在中国建立亚马孙分基地,从中国就能把书送到。
WAF
Web application firewall,应用层面的防火墙,检测http流量,防护web应用的安全技术。
webofservice,跨编程语言和跨操作系统平台的远程调用技术。基于web(HTTP)的服务架构技术。
HTML
由HTML命令组成的描述性文本,可以说明文字,图形,动画等。
web页面构成
web页面也叫做文档,是由一个个对象组成的。一个对象(Object)只是一个文件。在网络中通过URL地址寻址。多数web页面含有一个HTML基本文件以及几个引用对象。
一个Web页面包含HTML文件和5个JPEG文件,那么这个Web页面就有6个对象:一个HTML文件和5个JPEG文件。
与HTTP有关的协议
TCP/IP,传输控制协议和网络协议。
DNS,把域名和IP地址的映射存放在分布式数据库中,使人更方便地访问互联网。
URI,统一资源标识符。
URL,统一资源定位符。
URN,统一资源名称。
HTTPS=HTTP+SSL
HTTP 请求响应过程
访问http://www.someSchool.edu/someDepartment/home.index, 输入网址点击回车,进行如下操作。
1. 域名映射:DNS解析域名,将其映射为IP地址,在80端口发起到服务器的TCP连接。在服务器和客户端进程中都有套接字与其相连。