HTTP概述

作者: 唐紫依 | 来源:发表于2017-05-01 21:55 被阅读156次

参考资料

  • 《HTTP 权威指南》

引言

本篇简要介绍 HTTP 协议的一些概念,后续详细补充。

一、HTTP——因特网的多媒体信使

  • HTTP(HyperText Transfer Protocol)超文本传输协议,在因特网上,JPEG 图片,HTML 文件,文本文件,MPEG 电影,WAV 音频文件,Java 小程序等超文本便是通过 HTTP 协议进行传输的。
  • HTTP 使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏或产生混乱。

二、WEB 客户端和服务器

  • 我们的 Web 资源就是存放在 Web 服务器上的,Web 客户端一般指浏览器,二者便是通过 HTTP 协议进行数据传输的。


    Web 客户端和服务器

三、资源

  • Web 服务器是 Web 资源的宿主。Web 资源是 Web 内容的源头。最简单的 Web 资源就是 Web 服务器文件系统中的静态文件。这些文件可以包含任意内容,比如 .txt.html.word 格式的文件。
  • 资源也可以是根据需要生成内容的软件程序。这些动态内容可以根据你的身份、所请求的信息或每天的不同时段来产生内容。
资源请求示意图

3.1 媒体类型

  • 因特网上有数千种不同的数据类型,HTTP 仔细地给每种要通过 Web 传输的对象都打上了名为 MIME 类型的数据格式标签。MIME 类型是一种文本标记,表示一种主要的对象类型和特定的子类型,中间有一条斜杠来分隔。以下是一些常见的文本类型的例子:
  • HTML 格式的文本文档由 text/html 类型来标记
  • 普通的 ASCII 文本文档由 text/plain 类型来标记
  • JPEG 格式的图片为 image/jpeg 类型
  • GIF 格式的图片为 image/gif 类型

3.2 URI

  • 服务器资源名被称为 统一资源标识符(Uniform Resource Identifier,URI),URI 就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。URI 有两种形式,分别称为 URL 和 URN,前者运用比较广泛。

3.3 URL

  • 统一资源定位符(URL)是资源标识符最常见的形式。URL 描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个精确、固定的位置获取资源。
URL 说明了协议,服务器和本地资源
  • 大部分 URL 都遵循一种标准格式,这种格式包含三个部分:
  • URL 的第一部分被称为方案,说明了访问资源所使用的协议类型。这部分通常就是 HTTP 协议(http://
  • 第二部分给出了服务器的因特网地址(比如 www.baidu.com
  • 其余部分指定了 Web 服务器上的某个资源(比如 /specials/source.jpg

3.4 URN

  • URI 的第二种形式就是统一资源名(URN)。URN 是作为特定内容的唯一名称所使用的,与目前的资源所在地无关。使用这些与位置无关的 URN,就可以将资源四处搬移。通过 URN,还可以用同一个名字通过多种网络访问协议来访问资源。

四、事务

  • 一个 HTTP 事务由一条(从客户端发往服务器)请求命令和一个(从服务器发回客户端)响应结果组成。这种通信是通过名为 HTTP 报文(HTTP message)的格式化数据块进行的,如下图所示:
HTTP 事务示意图

4.1 方法

  • HTTP 支持集中不同的请求命令,这些命令被称为 HTTP 方法。每条 HTTP 请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个 Web 页面、运行一个网关程序,删除一个文件等)。
一些常见的 HTTP 方法

4.2 状态码

  • 每条 HTTP 响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。
一些常见的 HTTP 状态码

4.3 Web 页面中可以包含多个对象

  • 一个 Web 页面通常不是单个资源,而是一组资源的集合:
符合 Web 页面要为每个嵌入式资源使用一个单独的 HTTP 事务

五、报文

  • HTTP 报文是由一行一行的简单字符串组成的。HTTP 报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。
  • HTTP 报文分两种,其中从 Web 客户端发往 Web 服务器的 HTTP 报文称为 请求报文。从服务器发往客户端的报文称为 响应报文
  • HTTP 报文包括以下三个部分:
  • 起始行:报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。
  • 首部字段:起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号 来分隔。首部一个空行结束。添加一个首部字段和添加新行一样简单。
  • 主体:空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据。当然,主体中也可以包含文本。
简单的报文实例

六、连接

6.1 TCP/IP

  • HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节,它把联网的细节都交给了通用、可靠的因特网传输协议 TCP/IP。TCP 提供了:
  • 无差错的数据传输;
  • 按序传输(数据总是会按照发送的顺序到达)
  • 未分段的数据流(可以在任意时刻以任意尺寸将数据发送出去)
HTTP 网络协议栈

6.2 基本的浏览器连接处理步骤

基本的浏览器连接处理图解

(a)浏览器从 URL 中解析出服务器的主机名;
(b)浏览器将服务器的主机名转换成服务器的 IP 地址;
(c)浏览器将端口号(如果有的话)从 URL 中解析出来;
(d)浏览器建立一条与 Web 服务器的 TCP 连接;
(e)浏览器向服务器发送一条 HTTP 请求报文;
(f)服务器向浏览器会送一条 HTTP 响应报文;
(g)关闭连接,浏览器显示文档。

七、Web 的结构组件

7.1 代理

  • 位于客户端和服务器之间的 HTTP 中间实体:
在客户端和服务器之间转发流量的代理

7.2 缓存

  • HTTP 的仓库,使常用页面的副本可以保存在离客户端更近的地方:
保存常用文档本地副本以提高性能的代理缓存

7.3 网关

  • 链接其他应用程序的特殊 Web 服务器:
HTTP/FTP 网关

7.4 隧道

  • 对 HTTP 通信报文进行盲转发的特殊代理:
隧道可以在非 HTTP 网络上转发数据

7.5 Agent 代理

  • 发起自动 HTTP 请求的半智能 Web 客户端:
自动搜索引擎“网络蜘蛛”就是 Agent 代理,可以从全世界范围内获取 Web 页面

相关文章

  • HTTP概述

    HTTP HTTP 是什么 HTTP 全称 Hype Text Transfer Protocol(超文本传输协议...

  • Http概述

    Http概述 HTTP使用的是可靠的传输协议,即使数据是来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏...

  • HTTP概述

    1.MIME 数据格式标签。当浏览器 从服务器取回一个对象。会先查看 MIME 类型。看是否能处理。MIME ty...

  • HTTP概述

    前言 HTTP = Hypertext Transfer Protocol = 超文本传输协议是在万维网上进行通信...

  • HTTP概述

    参考资料 《HTTP 权威指南》 引言 本篇简要介绍 HTTP 协议的一些概念,后续详细补充。 一、HTTP——因...

  • HTTP概述

    HTTP是一种能够获取如HTML这样网络资源的协议。它是Web上数据交换的基础,是一种client-server协...

  • HTTP概述

    媒体类型(MIME) Web服务器会为所有的HTTP对象数据附加一个MIME类型。当Web浏览器从服务器取回一个对...

  • HTTP概述

    HTTP是一种能够获取如HTML这样网络资源的协议。它是Web上数据交换的基础,是一种client-server协...

  • HTTP概述

    1.1 HTTP——因特网的多媒体信使 HTTP使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,它也能够...

  • HTTP概述

    HTTP/1.x 在早期,HTTP 使用一个简单的模型来处理这样的连接。这些连接的生命周期是短暂的:每发起一个请求...

网友评论

    本文标题:HTTP概述

    本文链接:https://www.haomeiwen.com/subject/wupttxtx.html