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

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

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

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

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

web客户端与服务器

资源

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

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

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


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

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

image.png
  • URL说明了协议,服务器和本地资源。几乎所有的 URI 都是 URL

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

事务

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

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

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

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

  • 一个web页面不是单个资源,而是多个资源的合集
web页面是多个资源的合集

报文

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

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


    报文

连接

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

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

  • http基于tcp,tcp基于ip


    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连接

基本的浏览器链接处理

步骤如下:
(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 请求, 并将这些请求转发给服务器(可能会对请求进行修改之后转发)。 对用户来说, 这些应用程序就是一个代理, 代表用户访问服务器.
在客户端和服务端之间转发流量的代理
  • 出于安全考虑, 通常会将代理作为转发所有 Web 流量的可信任中间节点使用。 代理还可以对请求和响应进行过滤。 比如, 在企业中对下载的应用程序进行病毒检测,或者对小学生屏蔽一些成人才能看的内容。

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

web缓存
  • 网关:是一种特殊的服务器, 作为其他服务器的中间实体使用。 通常用于将 HTTP 流量转换成其他的协议。 网关接受请求时就好像自己是资源的源端服务器一样。 客户端可能并不知道自己正在与一个网关进行通信。
网关
  • 隧道:是建立起来之后, 就会在两条连接之间对原始数据进行盲转发的HTTP 应用程序。 HTTP 隧道通常用来在一条或多条 HTTP 连接上转发非 HTTP 数据, 转发时不会窥探数据。
SSL隧道
  • Agent 代理(或者简称为 Agent 代理) 是代表用户发起 HTTP 请求的客户端程序。目前我们知道的agent代理就是web浏览器,其实搜索引擎也是agent代理。
    搜索引擎是agent代理
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,186评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,858评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,620评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,888评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,009评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,149评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,204评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,956评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,385评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,698评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,863评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,544评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,185评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,899评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,141评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,684评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,750评论 2 351

推荐阅读更多精彩内容

  • 1.1HTTP——因特网的多媒体信使 HTTP可以从世界各地的Web服务器上将各种图片、html、视频等互联网资源...
    八目朱勇铭阅读 541评论 0 3
  • (本文参考课本是《HTTP权威指南》,文中的书写结构是根据自己的阅读理解的个人思路,如有不懂可以自行参考原书) 第...
    Andrew_bao阅读 533评论 1 3
  • 第一章、HTTP概述1、Web浏览器、服务器和相关的Web应用程序都是通过HTTP相互通信的,HTTP是现代全球因...
    横冲直撞666阅读 637评论 0 1
  • 概述 本章是对http进行简单介绍。特别要关注以下方面的内容: web客户端与服务器是如何通信的; web的资源来...
    shenyifu阅读 450评论 0 1
  • 当 app 和服务器进行通信的时候,大多数情况下,都是采用 HTTP 协议。HTTP 最初是为 web 浏览器而定...
    Flysss1219阅读 1,259评论 0 4