1.3 网络基础TCP/IP
TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层
1.4 与HTTP关系密切的协议:IP、TCP和DNS
几乎所有使用网络的系统都会用到IP协议。
可能有人会把“IP”和“IP地址”搞混,“IP”其实是一种协议的名称。
采用ARP协议(Address Resolution Protocol)。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大块数据分割成以报文段(segment)为单位的数据包进行管理。
2.2 通过请求和响应的交换达成通信
GET表示请求访问服务器的类型,称为方法
请求报文是由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成的。
2.6 使用方法下达命令
向请求URI指定的资源发送请求报文时,采用称为方法的命令。
3.4 发送多种数据的多部分对象集合
发送邮件时,我们可以在邮件里写入文字并添加多份附件。这是因为采用了MIME(Multipurpose Internet Mail Extensions,多用途因特网邮件扩展)机制,它允许邮件处理文本、图片、视频等多个不同类型的数据。
4.5 5XX服务器错误
状态码和状况的不一致不少返回的状态码响应都是错误的,但是用户可能察觉不到这点。比如Web应用程序内部发生错误,状态码依然返回200 OK,这种情况也经常遇到。
5.1 用单台虚拟主机实现多个域名
在互联网上,域名通过DNS服务映射到IP地址(域名解析)之后访问目标网站。可见,当请求发送到服务器时,已经是以IP地址形式访问了。
在相同的IP地址下,由于虚拟主机可以寄存多个不同主机名和域名的Web网站,因此在发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI。
5.2 通信数据转发程序:代理、网关、隧道
代理服务器的基本行为就是接收客户端发送的请求后转发给其他服务器。
5.3 保存资源的缓存
当判定缓存过期后,会向源服务器确认资源的有效性。若判断浏览器缓存失效,浏览器会再次请求新资源。
6.2 HTTP首部字段
使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容
HTTP首部字段是由首部字段名和字段值构成的,中间用冒号“:”分隔。
7.1 HTTP的缺点
HTTP主要有这些不足,例举如下。
●通信使用明文(不加密),内容可能会被窃听
●不验证通信方的身份,因此有可能遭遇伪装
●无法证明报文的完整性,所以有可能已遭篡改用Java和PHP等编程语言开发的Web应用也可能存在安全漏洞。
HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。
SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方。
像这样,请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack,MITM)。
7.2 HTTP+加密+认证+完整性保护=HTTPS
所谓HTTPS,其实就是身披SSL协议这层外壳的HTTP。
8.2 BASIC认证
BASIC认证(基本认证)是从HTTP/1.0就定义的认证方式。即便是现在仍有一部分的网站会使用这种认证方式。是Web服务器与通信客户端之间进行的认证方式。