第一章 Http概述(http权威指南)

写在前面:因为http的知识偏概念,所以只记录书中的重点内容,目的是建立web概念了解原理,也是为了在以后面试中能应付http方面得问题(例如三次握手是哪三次?)。

  • HTTP(Hypertext Transfer Protocol, 超文本传输协议①) 是在万维网上进行通信时
    所使用的协议方案。 HTTP 有很多应用, 但最著名的是用于 Web 浏览器和 Web 服
    务器之间的双工通信

  • HTTP 使用的是可靠的数据传输协议, 因此即使数据来自地球的另一端, 它也能够
    确保数据在传输的过程中不会被损坏或产生混乱。

  • Web 服务器所使用的是 HTTP 协议, 因此经常会被称为 HTTP 服务器。

第一章 Http概述(http权威指南)_第1张图片
web客户端与服务器

资源

  • 资源: 在web传输中所有类型的内容来源都是资源。

  • MIME类型:(Multipurpose Internet Mail Extension, 多用途因特网邮件扩展, 读音:\卖姆\ )最初是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。 MIME 在电子邮件系统中工作得非常
    好, 因此 HTTP 也采纳了它, 用它来描述并标记多媒体内容。

    1. 当 Web浏览器从服务器中取回一个对象时, 会去查看相关的 MIME 类型, 看看它是否知道应该如何处理这个对象。 大多数浏览器都可以处理数百种常见的对象类型: 显示图片文件、 解析并格式化 HTML 文件、 通过计算机声卡播放音频文件, 或者运行外部插件软件来处理特殊格式的数据


      第一章 Http概述(http权威指南)_第2张图片
      MIME
    2. MIME的格式:主类型/次类型 例如:image/png image/jpeg text/html text/plain
  • URI: 统一资源标识符(Uniform Resource Identifier)URI 就像因特网上的邮政地址一样, 在世界范围内唯一标识并定位信息资源。URI 有两种形式, 分别称为 URL 和 URN。

  • URL:统一资源定位符.URL 描述了一台特定服务器上某资源的特定位置。 它们可以明确说明如何从一个精确、 固定的位置获取资源.

第一章 Http概述(http权威指南)_第3张图片
image.png
  • URL说明了协议,服务器和本地资源。几乎所有的 URI 都是 URL

  • URN:统一资源名。URN 是作为特定内容的唯一名称使用的, 与目前的资源所在地无关。 使用这些与位置无关的 URN, 就可以将资源四处搬移。 通过 URN, 还可以用同一个名字通过多种网络访问协议来访问资源。URN 仍然处于试验阶段, 还未大范围使用。 为了更有效地工作, URN 需要一个支撑架构来解析资源的位置。 而此类架构的缺乏也延缓了其被采用的进度。 但 URN确实为未来发展作出了一些令人兴奋的承诺。

事务

  • 一个 HTTP 事务由一条(从客户端发往服务器的) 请求命令和一个(从服务器发回客户端的) 响应结果组成。 这种通信是通过名为 HTTP 报文(HTTP message)的格式化数据块进行的
第一章 Http概述(http权威指南)_第4张图片
事务/报文
  • 方法:每个http报文中都包含一个方法,常见的方法有:
第一章 Http概述(http权威指南)_第5张图片
报文方法

ps:和后台交流的时候经常会说,url的请求类型是啥啊?

  • 状态码:每条 HTTP 响应报文返回时都会携带一个状态码。 状态码是一个三位数字的代码,
    告知客户端请求是否成功, 或者是否需要采取其他动作。
第一章 Http概述(http权威指南)_第6张图片
状态码

ps:看到过一道面试题:状态码302代表啥

  • 一个web页面不是单个资源,而是多个资源的合集
第一章 Http概述(http权威指南)_第7张图片
web页面是多个资源的合集

报文

  • 从 Web 客户端发往 Web 服务器的 HTTP 报文称为请求报文(request message)。 从服务器发往客户端的报文称为响应报文(response message), 此外没有其他类型的HTTP 报文。

  • 报文由起始行,首部字段,主体三部分组成。


    第一章 Http概述(http权威指南)_第8张图片
    报文

连接

报文是通过传输控制协议(Transmission Control Protocol, TCP) 连接从一个地方搬移到另一个地方去的。

  • TCP/IP协议:HTTP 是个应用层协议。 HTTP 无需操心网络通信的具体细节; 它把联网的细节都交给了通用、 可靠的因特网传输协议 TCP/IP。因特网自身就是基于 TCP/IP 的, TCP/IP 是全世界的计算机和网络设备常用的层次化分组交换网络协议集。 TCP/IP 隐藏了各种网络和硬件的特点及弱点, 使各种类型的计算机和网络都能够进行可靠地通信。

  • http基于tcp,tcp基于ip


    第一章 Http概述(http权威指南)_第9张图片
    HTTP网络协议栈
  • 连接、 IP地址及端口号

  • 在 HTTP 客户端向服务器发送报文之前, 需要用网际协议(Internet Protocol, IP)地址和端口号在客户端和服务器之间建立一条 TCP/IP 连接。在 TCP 中, 你需要知道服务器的 IP 地址, 以及与服务器上运行的特定软件相关的TCP 端口号。

  • 通过一种称为域名服务(Domain Name Service, DNS) 的机制方便地将主机名转换为 IP
    地址(www.xswell.com=>192.142.6.0)

  • URL可以不带端口号,采用默认端口号80连接

第一章 Http概述(http权威指南)_第10张图片
基本的浏览器链接处理

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

  • Telnet:Telnet 程序可以将键盘连接到某个目标 TCP 端口, 并将此 TCP 端口的输出回送到
    显示屏上。 Telnet 常用于远程终端会话, 但它几乎可以连接所有的 TCP 服务器, 包
    括 HTTP 服务器。

协议版本

  • 0.9 设计缺陷
  • 1.0 第一个得到广泛使用的 HTTP 版本
  • 1.0+ 很多流行的 Web 客户端和服务器都在飞快地向 HTTP中添加各种特性, 以满足快速扩张且在商业上十分成功的万维网的需要。 其中很多特性, 包括持久的 keep-alive 连接、 虚拟主机支持, 以及代理连接支持都被加入到 HTTP 之中, 并成为非官方的事实标准。 这种非正式的 HTTP 扩展版本通常称为 HTTP/1.0+。
  • 1.1 校正 HTTP 设计中的结构性缺陷, 明确语义, 引入重要的性能优化措施, 并删除一些不好的特性。 HTTP/1.1 是当前使用的 HTTP 版本。
  • 2.0ng 不研究了,也不打算推广

web的结构组件

  • 代理:代理位于客户端和服务器之间, 接收所有客户端的 HTTP 请求, 并将这些请求转发给服务器(可能会对请求进行修改之后转发)。 对用户来说, 这些应用程序就是一个代理, 代表用户访问服务器.
第一章 Http概述(http权威指南)_第11张图片
在客户端和服务端之间转发流量的代理
  • 出于安全考虑, 通常会将代理作为转发所有 Web 流量的可信任中间节点使用。 代理还可以对请求和响应进行过滤。 比如, 在企业中对下载的应用程序进行病毒检测,或者对小学生屏蔽一些成人才能看的内容。

  • 缓存:Web 缓存(Web cache) 或代理缓存(proxy cache) 是一种特殊的 HTTP 代理服务
    器, 可以将经过代理传送的常用文档复制保存起来。 下一个请求同一文档的客户端
    就可以享受缓存的私有副本所提供的服务了

第一章 Http概述(http权威指南)_第12张图片
web缓存
  • 网关:是一种特殊的服务器, 作为其他服务器的中间实体使用。 通常用于将 HTTP 流量转换成其他的协议。 网关接受请求时就好像自己是资源的源端服务器一样。 客户端可能并不知道自己正在与一个网关进行通信。
第一章 Http概述(http权威指南)_第13张图片
网关
  • 隧道:是建立起来之后, 就会在两条连接之间对原始数据进行盲转发的HTTP 应用程序。 HTTP 隧道通常用来在一条或多条 HTTP 连接上转发非 HTTP 数据, 转发时不会窥探数据。
第一章 Http概述(http权威指南)_第14张图片
SSL隧道
  • Agent 代理(或者简称为 Agent 代理) 是代表用户发起 HTTP 请求的客户端程序。目前我们知道的agent代理就是web浏览器,其实搜索引擎也是agent代理。
    第一章 Http概述(http权威指南)_第15张图片
    搜索引擎是agent代理

你可能感兴趣的:(第一章 Http概述(http权威指南))