1.1 HTTP——因特网的多媒体信使 ...............................................................................................4
1.2 Web 客户端和服务器 .................................................................................................................4
1.3 资源 ............................................................................................................................................5
1.3.1 媒体类型 ........................................................................................................................6
1.3.2 URI.................................................................................................................................7
1.3.3 URL ...............................................................................................................................7
1.3.4 URN ...............................................................................................................................8
1.4 事务 ............................................................................................................................................9
1.4.1 方法 ...............................................................................................................................9
1.4.2 状态码 ..........................................................................................................................10
1.4.3 Web 页面中可以包含多个对象 ..................................................................................10
1.5 报文 ..........................................................................................................................................11
1.6 连接 ..........................................................................................................................................13
1.6.1 TCP/IP ..........................................................................................................................13
1.6.2 连接、IP 地址及端口号 ..............................................................................................14
1.6.3 使用Telnet 实例 ..........................................................................................................16
1.7 协议版本 ..................................................................................................................................18
1.8 Web 的结构组件 .......................................................................................................................19
1.8.1 代理 ..............................................................................................................................19
1.8.2 缓存 ..............................................................................................................................20
1.8.3 网关 ..............................................................................................................................20
1.8.4 隧道 ..............................................................................................................................21
1.8.5 Agent 代理 ....................................................................................................................21
1.9 起始部分的结束语 ...................................................................................................................22
1.10 更多信息 ................................................................................................................................22
1.10.1 HTTP 协议信息 ........................................................................................................22
1.10.2 历史透视 ...................................................................................................................23
1.10.3 其他万维网信息 .......................................................................................................23

Web 客户端和服务器

web内容都在服务器上,客户端向服务器发送一条HTTP请求,然后服务器将信息放在HTTP响应中发回给客户端。

【资源 resource】web服务器是web资源的宿主,web资源是web内容的源头。资源可以是静态html,音频,图片等任意内容,也可以是动态生成的内容。网关,搜索引擎也是一种资源。

【媒体类型 】MIME 类型(Multipurpose Internet Mail Extensions type 多用途因特网邮件扩展) web服务器会给每一个对象附加一个MIME 类型,MIME 类型是一种文本标记,形式为对象类型/子类型

例如:HTML格式的文本文档:  text/html

  ASCLL格式的文本文档:  text/plain

  JEP格式的图片:  image/jpeg  

  GIF格式的图片:  image/gif

【URI】每个服务器资源都有一个名字,这个名字叫做URI(uniform resource identifer 统一资源标识符)就像邮政地址一样,可以作为唯一标识并定位。

  URI分作两种URL(统一资源定位符)和URN(统一资源名)

【URN】作为特定内容的唯一名称,与资源的所在地无关。便于搬运和访问,如:urn:ietf:rfc:2141 。可惜还没有大范围使用,现在几乎所有的URI都是URL。

【URL】描述了某资源在特定服务器的特定位置,可以通过它从精确,固定的位置获取资源。

URL的格式分作三部分:【方案 scheme】协议类型,通常是  http://

           【服务器的因特网地址】如:xiaoshuwu.u.qiniudn.com

           【web服务器上的某个资源】如:/wp-content/uploads/2014/03/HTTP权威指南.jpg

上面这个URL代表的内容就是这张图片

【事务】一个HTTP事务由一个请求命令和一个响应结果组成,这种通信通过格式化数据块 HTTP报文(HTTP message)来进行。

【报文】HTTP报文分作两部分header和body(主体),header包含起始行和首部字段,

【方法 method】 (请求命令):每个请求报文中都包含了一个方法,来告诉浏览器要执行什么动作。

常用方法如:GET:请求某资源    POST:提交某数据    PUT:将数据存储到服务器中    DELETE:删除服务器中的某数据   

【状态码】每个响应报文都会携带一个三位数组成的状态码来告知客户端请求是否成功,或提示是否采取其他动作。

常见HTTP状态码如:200 ok  文档正确返回  302 redirect(重定向)  到其他地方去获取资源   404   not found(没找到)  无法找到这个资源

除了数字码,同时还会返回一句解释性的话语,该话语只起到描述作用,整个处理过程都使用数字码。

Web 页面中可以包含多个对象-----需要多个事务才能得到一个丰富完整的页面。客户端先向服务器发送一个请求,服务器发回一个html框架,浏览器解析这个html后提取出里面的链接,图片,音频等嵌入式资源的URL,再一个个地发送请求,这些嵌入式资源可能分布在不同的服务器上,这些服务器再发出响应报文,这样可以分散服务器的压力。

简单报文实例

连接

了解了报文后,我们要讨论一下报文是如何通过传输控制协议(TCP)连接从一个地方到另一个地方去的。

【TCP(传输控制协议)】提供了:无差错的传输  按序传输  未分段的数据流(什么是未分段的数据流呢,就是说可以在任一时刻以任意尺寸把数据发送出去)

TCP是一种可靠的传输协议

【IP(Internet Protocol 网络协议)】

我们已经知道了HTTP客户端通过TCP向服务器发送报文,但是在此之前,还需要用网络协议(IP)地址和端口号在客户端和服务器之间建立一条TCP/IP连接

原来这就是我们常说的IP地址,打个比方,找某个人,IP地址就是那个人公司的电话号码,而端口号就是这个人的分机号。

也就是说在TCP中,当客户端需要与服务器产生通信时,需要先得知服务器的IP地址和服务器上运行的特定软件相关的TCP端口号

这就行了,但是在此之前客户端要则么才能获取到IP地址和端口号呢?

先看我们平常是怎样访问一个网站的呢?当然是URL,URl既然是资源的地址,那么肯定含有提供资源的机器的IP地址和端口号,不是吗

我满看到面这几个URL:

看起来并不复杂,都是我们通常见到的URL

第一个很清晰,IP地址是207.200.83.29,端口是80。

我记得IP地址都是一串数字对吧,可是后两个URL的数字在哪呢?

我们看到后两串URL中包含的是文本形式的域名(或称为主机名)而非一串数字组成的IP地址,然而多数情况就是这样的形式,这时就涉及到了一种称作域名服务(DNS)的机制

实际上主机名就是IP地址比较人性化的一种形式,因为比较容易记忆嘛。而没有标明端口号的就默认为80端口。

【Web结构组件】

【代理】

代理位于客户端和服务器中间,接受客户端的HTTP请求,并将请求(可能还会修改请求)转发给服务器。

代理还可以对请求和响应过滤。

【缓存】

缓存是一种特殊的代理服务器,它可以将经过代理传送的常用文档复制保存起来,下一个请求该文档的客户端就可以从这个代理服务器的缓存中下载了,,因为客户端从附近的缓存下载文档要比从远程的web服务器下载快得多,所以可以大大地提升效率。

【网关】

用于将HTTP转换成其他的协议

【隧道】

用来在一条或多条HTTP连接上传递非HTTP数据。

HTTP隧道的常见用途是通过HTTP连接承载加密的安全套接字层(SSL)流量这样SSL流量就可以穿过只允许web流量通过的防火墙,发送到服务器上了。

【Agent代理】

用户agent代理/agent代理:代表用户发起HTTP请求的客户端程序。所有发布web请求的都是agent代理,已经提到过的有浏览器这一种,其他还有很多,如网络蜘蛛,网络机器人

仅允许非商业转载,转载请注明出处

【HTTP权威指南】第1 章 HTTP 概述的更多相关文章

  1. JavaScript权威指南第01章 JavaScript 概述

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/huangbin10025/article/details/27951767 JavaScript 概 ...

  2. javascript权威指南第1章Js概述js语言核心

    <html> <head> <script> function Point(x,y){ this.x=x; this.y=y; } ,); console.log( ...

  3. PADSPCB权威指南-第三章 预处理(部分)(原创)

    PADSPCB权威指南-第三章(部分)豆丁地址:http://www.docin.com/p-707132066.html

  4. HTTP 权威指南 详解 ( 一、概述 )

    HTTP 权威指南 详解 ( 一.概述 ) 最近在解读 <http权威指南> 这本书.之前对于http 的理解仅限于 知道我需要向服务端发送一个 get or post 请求,然后等待服务 ...

  5. HTTP权威指南:第二章

    URL概览 前面提到,URL资源是HTTP协议所使用的寻找资源位置的定位符.分为三个部分,主要的结构是: 方案://服务器/路径 这种结构使得网络上的每一个资源都只有唯一的命名方法,从而使得浏览器可以 ...

  6. javascript权威指南第11章 DOM扩展

    //javascript 权威指南 第三版 第11章 DOM扩展 //取得body元素 var body = document.querySelector("body"); //取 ...

  7. 读书笔记系列之java性能优化权威指南 一 第一章

    主题:java性能优化权威指南 pdf 版本:英文版 Java Performance Tuning 忽略:(0~24页)Performance+Acknowledge 1.Strategies, A ...

  8. 【笔记】javascript权威指南-第六章-对象

    对象 //本书是指:javascript权威指南    //以下内容摘记时间为:2013.7.28 对象的定义: 1.对象是一种复合值:将很多值(原始值或者对象)聚合在一起,可以通过名字访问这些值. ...

  9. 【笔记】javascript权威指南-第三章-类型,值和变量

    javascript中的原始类型和对象类型(基本类型和引用类型) //本书是指:javascript权威指南    //以下内容摘记时间为:2013.7.27   计算机程序运行时需要对值(value ...

  10. ANTLR4权威指南 - 第6章 尝试一些实际中的语法

    第6章 尝试一些实际中的语法 在前一章,我们学习了通用词法结构和语法结构,并学习了如何用ANTLR的语法来表述这些结构.现在,是时候把我们学到的这些用来构建一些现实世界中的语法了.我们的主要目标是,怎 ...

随机推荐

  1. 6.解决AXIOS的跨域问题

    在服务端加上: response.addHeader("Access-Control-Allow-Origin", "*"); response.addHead ...

  2. 在线SVN仓库实现:金山快盘+TortoiseSVN(Win)+SCPlugin(Mac)

    前段时间一直在研究SVN在线托管,也尝试了网上推荐的免费托管网站. 但毕竟是是免费的,还是要受到比如空间大小.私有性等这样那样的限制,感觉有些麻烦. 而且,比较心疼自己在本地开发的时候积累的更新日志, ...

  3. python实现简单的循环购物车小功能

    python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...

  4. 使用阿里百川HotFix

    前言:首先要弄懂HotFix是干嘛的,不然就别向下看了.这里仅仅根据官方文档的代码书写,亲测可用,不做理论指导. Android Studio集成: 添加maven仓库地址: repositories ...

  5. javascript之原型(prototype)

    今天是第一次写博客,写点在javascript中重要的一个概念----原型(prototype): 原型,顾名思义,就是一切事物的模板. 柏拉图在<理想国>卷10中说:"床不是有 ...

  6. 前端需要注意的seo

    1 合理的title ,description ,keyswords 搜索引擎对这三项的权重逐渐减小,title 强调重点即可 ,重要的关键字不要超过两次,而且要靠前. 2 不同的tilte要有所不同 ...

  7. twemproxyMemcache协议解析探索——剖析twemproxy代码正编补充

    memcache是一种和redis类似的高速缓存服务器,但是memcache只提供键值对这种简单的存储方式,相对于redis支持的存储方式多样化,memcache就比较简单了.memcache通过tc ...

  8. IntelliJ IDEA 调试(debug)时非常慢的原因

    IntelliJ  IDEA 开发时,发现有时Debug时tomcat启动的非常慢,需要等待超过20分钟,但有时就很快,经查找发现是断点设置问题, 若断点设置在方法名上,debug时就会非常慢, 如图 ...

  9. vue的增删改查

    我们把这些用户信息保存到list的数组中,然后增删改查就在这个数组上进行: list: [ { username: 'aaaaa', email: '123@qq.com', sex: '男', pr ...

  10. MySQL IO线程及相关参数调优

    一.关于一个SQL的简单的工作过程 1.工作前提描述 1.启动MySQL,在内存中分配一个大空间innodb_buffer_pool(其中log_buffer) 2.多用户线程连接MySQL,从内存分 ...