3 项 WWW 构建技术,分别是:把 SGML(Standard Generalized Markup Language,标准通用标记语言)做为页面的文本标记语言的浏览器
HTML(HyperText Markup Language,超文本标记语言);做为文档传递协议的 HTTP ; 指定文档所在地址的安全
URL(Uniform Resource Locator,统一资源定位符)服务器
HTTP/0.9 HTTP 于1990 年问世。那时的 HTTP 并无做为正式的标准被创建。如今的 HTTP 其实含有 HTTP1.0 以前版本的意思,所以被称为HTTP/0.9。网络
HTTP/1.0 HTTP 正式做为标准被公布是在 1996 年的 5 月,版本被命名为HTTP/1.0,并记载于 RFC1945。虽然说是初期标准,但该协议标准至今仍被普遍使用在服务器端。ide
HTTP/1.1 1997 年 1 月公布的 HTTP/1.1 是目前主流的 HTTP 协议版本。当初的标准是 RFC2068,以后发布的修订版 RFC2616 就是当前的最新版本。编码
HTTP/2.0 主要技术方向加密
应用层:决定了向用户提供应用服务时通讯的活动。TCP/IP 协议族内预存了各种通用的应用服务。好比,FTP(FileTransfer Protocol,文件传输协议)和 DNS(Domain Name System,域名系统)服务就是其中两类。HTTP 协议也处于该层。spa
传输层:传输层对上层应用层,提供处于网络链接中的两台计算机之间的数据传输。在传输层有两个性质不一样的协议:TCP(Transmission ControlProtocol,传输控制协议)和 UDP(User Data Protocol,用户数据报协议)。操作系统
网络层:用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了经过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间经过多台计算机或网络设备进行传输时,网络层所起的做用就是在众多的选项内选择一条传输路线3d
数据链路层:用来处理链接网络的硬件部分。包括控制操做系统、硬件的设备驱动、NIC(Network Interface Card,网络适配器,即网卡),及光纤等物理可见部分(还包括链接器等一切传输媒介)。硬件上的范畴均在链路层的做用范围以内
利用 TCP/IP 协议族进行网络通讯时,会经过分层顺序与对方进行通讯。发送端从应用层往下走,接收端则往应用层往上走。
举例来讲明,首先做为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。
接着在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
在网络层(IP 协议),增长做为通讯目的地的 MAC 地址后转发给链路层。
接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP请求
发送端在层与层之间传输数据时,每通过一层时一定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每通过一层时会把对应的首部消去。这种把数据信息包装起来的作法称为封装。
IP 协议的做用是把各类数据包传送给对方。而要保证确实传送到对方那里,则须要知足各种条件。其中两个重要的条件是 IP 地址和 MAC地址(Media Access Control Address)
IP 地址指明了节点被分配到的地址,MAC 地址是指网卡所属的固定地址。IP 地址能够和 MAC 地址进行配对。IP 地址可变换,但 MAC地址基本上不会更改。使用 ARP 协议凭借 MAC 地址进行通讯IP 间的通讯依赖 MAC 地址。
在网络上,通讯的双方在同一局域网(LAN)内的状况是不多的,一般是通过多台计算机和网络设备中转才能链接到对方。而在进行中转时,会利用下一站中转设备的 MAC地址来搜索下一个中转目标。这时,会采用 ARP 协议(AddressResolution Protocol)。ARP 是一种用以解析地址的协议,根据通讯方的 IP 地址就能够反查出对应的 MAC 地址---------这种机制称为路由选择
TCP 位于传输层,提供可靠的字节流服务。所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理
为了准确无误地将数据送达目标处,TCP 协议采用了三次握手
握手过程当中使用了 TCP 的标志(flag) —— SYN(synchronize) 和ACK(acknowledgement)
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发送端再回传一个带 ACK 标志的数据包,表明“握手”结束。若在握手过程当中某个阶段莫名中断,TCP 协议会再次以相同的顺序发送相同的数据包
URL(UniformResource Locator,统一资源定位符)URL 正是使用 Web 浏览器等访问 Web 页面时须要输入的网页地址
URI(统一资源标识符):URI 就是由某个协议方案表示的资源的定位标识符。协议方案是指访问资源所使用的协议类型名称
HTTP/1.1 和一部分的 HTTP/1.0 想出了持久链接(HTTP Persistent Connections,也称为 HTTP keep-alive 或HTTP connection reuse)的方法。持久链接的特色是,只要任意一端没有明确提出断开链接,则保持 TCP 链接状态
持久链接使得多数请求以管线化(pipelining)方式发送成为可能。从前发送请求后需等待并收到响应,才能发送下一个请求。管线化技术出现后,不用等待响应亦可直接发送下一个请求
HTTP 报文大体可分为报文首部和报文主体两块。二者由最初出现的空行(CR+LF)来划分。一般,并不必定要有报文主体
-报文(message)是 HTTP 通讯中的基本单位,由 8 位组字节流(octet sequence,其中 octet 为 8 个比特)组成,经过 HTTP 通讯传输。
-实体(entity)做为请求或响应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。
HTTP 报文的主体用于传输请求或响应的实体主体。
压缩传输的内容编码
经常使用的内容编码有如下几种
gzip(GNU zip)
compress(UNIX 系统的标准压缩)
deflate(zlib)
identity(不进行编码)
分割发送的分块传输编码
通用首部字段(General Header Fields)
请求报文和响应报文两方都会使用的首部。
请求首部字段(Request Header Fields)
从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加
内容、客户端信息、响应内容相关优先级等信息。
响应首部字段(Response Header Fields)
从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加
内容,也会要求客户端附加额外的内容信息。
实体首部字段(Entity Header Fields)
针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更
新时间等与实体有关的信息。
HTTP 主要有这些不足,例举以下
HTTP+ 加密 + 认证 + 完整性保护
=HTTPS
经过和 SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密 HTTP 的通讯内容。用 SSL 创建安全通讯线路以后,就能够在这条线路上进行 HTTP通讯了。与 SSL 组合使用的 HTTP 被称为 HTTPS(HTTPSecure,超文本传输安全协议)或 HTTP over SSL
报文完整性的方法,但事实上并不便捷、可靠。其中经常使用的是 MD5 和 SHA-1 等散列值校验的方法