《http权威指南》学习笔记

第一部分 HTTP:WEB的基础

第一章 HTTP概述

媒体类型:

  • http给每种要通过web传输的对象都打上了名为MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)类型的数据格式标签。
  • Web服务器会为所有HTTP对象数据附加一个MIME类型。当Web浏览器从服务器中取回一个对象时,回去查看相关的MIME类型,看看它是否知道应该如何处理这个对象。
    MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由斜杠来分隔。
    1、HTML格式的文本文档由 text/html 类型来标记
    2、普通的ASCII文本文档由 text/plain 类型来标记
    3、JPEG版本的图片为 image/jpeg 类型
    4、GIF格式的图片为 image/gif类型
    5、Apple的QuickTime电影为 video/quidktime 类型
    6、微软的PowerPoint演示文件为 application/vnd.ms-powerpoint 类型

URI

  • 服务器资源名被称为统一资源标识符(Uniform Resource Identifier,URI).URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。
    例如一个图片资源的URI:

http://www.nipic.com/topic/show_27071_1.html

当给定了URI,HTTP就可以解析出对象。URI有两种形式,分别称为URL和URN。

URL

  • 统一资源定位符(URL)是资源标识符最常见形式。它描述了一台特定服务器上的某资源的特定位置。
    URL说明了协议、服务器和本地资源。如下图:
    《http权威指南》学习笔记
    URL实例:
    《http权威指南》学习笔记
    大部分的URL都遵循一种标准格式,这种格式包含三个部分:、
    ①方案(scheme),说明了访问资源所使用的协议类型。这部分通常是HTTP协议(http://)
    ②给出服务器的因特网地址(www.baidu.com
    ③其余部分指定了WEB服务器上的某个资源(/specials/sky.gif)
    现在,几乎所有的URI都是URL。

URN

  • URI的第二种形式就是URN(统一资源名)。URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。使用这些与位置无关的URN,就可以将资源四处搬移。通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。
    例如:RFC 2141 无论在何处,甚至可以复制到多个地方,都可以用以下URN来命名:
    urn:ietf:rfc:2141
    URN仍处于试验阶段。

事务

  • 一个HTTP事务由一条请求命令和一个响应结果组成。这种通信是通过名为HTTP报文的格式化数据块进行的。
    方法
    HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP method)。
    常见的HTTP方法:
    GET—-从服务器向客户的发送命名资源
    PUT—-将来自客户的的数据存储到一个命名的服务器资源中去
    DELETE—-从服务器中删除命名资源
    POST—-将客户端数据发送到一个服务器网关应用程序
    HEAD—-仅发送命名资源响应中的HTTP首部

状态码

  • 每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。
    常见状态码:
    200—-OK,文档返回正确
    302—-Redirect,重定向,到其他地方获取资源
    404—-Not Found,无法找到这个资源

WEB页面中可以包含多个对象

  • 一个WEB页面是一组资源的集合。web浏览器会发布一系列HTTP事务来获取并显示一个包含了丰富资源的页面。
    《http权威指南》学习笔记
    报文
  • HTTP报文是由一行一行的简单字符串组成。它是纯文本,并非二进制代码。
    HTTP报文包含以下三个部分:
    1、起始行
    报文的第一行,在请求报文中用来说明要做些什么。在响应报文中说明出现了什么情况。
    2、首部字段
    起始行后面有零个或者多个首部字段。每个字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)分隔。首部以一个空行结束。
    3、主体
    空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送个web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体可以包含任意的二进制数据和文本。
    《http权威指南》学习笔记
    连接
    TCP/IP
    HTTP是个应用层协议,联网的细节都交给了TCP/IP协议。
    TCP提供:
    无差错的数据传输;按序传输;未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
    连接、IP地址及端口号
    在HTTP客户端向服务器发送报文之前,需要用网际协议(Internet Protocol,IP)地址和端口号在客户端与服务器之间建立一条TCP/IP 连接。
    《http权威指南》学习笔记

协议版本

  • HTTP/0.9
    HTTP的1991原型版本。仅支持GET方法,不支持多媒体内容的MIME类型、各种HTTP首部,或者版本号。
    HTTP/1.0
    1.0是第一个得到广泛使用的HTTP版本。HTTP/1.0添加了版本号、各种HTTP首部、一些额外的方法以及对多媒体对象的处理。
    HTTP/1.0+
    由很多流行的web客户端和服务器向HTTP中添加各种特性,包括keep-alive连接、虚拟主机支持、以及代理连接支持等,称为非官方的事实标准。这种的HTTP扩展版本通常称为HTTP/1.0+
    HTTP/1.1
    这个版本重点关注的是校正HTTP设计中的结构性缺陷,明确语义,引入重要的性能优化措施,并删除一些不好的特性。它还包含了对20世纪90年代末正在发展中的更复杂的WEB应用程序和部署方式的支持。它也是当前使用的版本。
    HTTP-NG(HTTP/2.0)
    是HTTP/1.1后继结构的原型建议,它重点关注的是性能的大幅优化以及更强大的服务逻辑远程执行框架。它的研究工作终止于1998年。

WEB的结构组件
代理
代理位于客户端和服务器之间,接收所有客户端的HTTP请求,并将这些请求转发给服务器(可能会对请求进行修改之后转发)。
缓存
WEB缓存(cache)或代理缓存是一种特殊的HTTP代理服务器,可将经过代理传送的常用文档复制保存起来。下一个请求同一文档的客户端就可以享受缓存的私有副本所提供的服务了。
网关
网关(gateway)是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换成其他的协议。网关接受请求时就好像自己是资源的源端服务器一样,客户端可能并不知道自己在与一个网关进行通信。
《http权威指南》学习笔记
隧道

隧道(tunnel)是建立起来之后,就会在两条连接之间对原始数据进行盲转发的HTTP应用程序。通常用来在一条或多条HTTP连接上转发非HTTP数据,转发时不会窥探数据。
HTTP隧道一种常见用途是通过HTTP连接承载加密的安全套接字层(SSL,Secure Sockets Layer)流量。这样SSL流量就可以穿过只允许WEB流量通过的防火墙了。
《http权威指南》学习笔记
Agent代理

  • Agent代理是代表用户发起HTTP请求的客户端程序。所有发布WEB请求的应用程序都是HTTP Agent代理。web浏览器。
    《http权威指南》学习笔记

第二章 URL与资源

浏览因特网资源

  • URL 可以通过HTTP之外的其他协议来访问资源。它们可以指向因特网上的任意资源。比如个人邮箱账户。或者其他协议FTP、或者从流视频服务器下载电影
    rtsp://www.xxxx.com:554/cto_video

URL的语法

  • 大多数URL方案的URL语法都建立在这个由9部分构成的通用格式上:
    : // : @ : / ; ? #
    《http权威指南》学习笔记

-----第二十九页-------