http小书 - (EPUB全文下载)

文件大小:0.06 mb。
文件格式:epub 格式。
书籍内容:

版权信息
书名:HTTP 小书
作者:刘传君
ISBN:EA019
本书由北京图灵文化发展有限公司发行数字版。版权所有,侵权必究。
您购买的图灵电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。
我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。
如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。
目录
献给
前言
实验环境
HTTP 引入
术语
一点历史
请求
GET 方法
POST 方法
OPTIONS 方法
请求方法: PUT,DELETE
CONNECT 方法
响应
200 型响应
300 型响应
400 型响应
500 型响应
100型响应
101 型响应
消息主体
连接的利用方法
客户识别
后记
   
献给
杨惠芳 女士 老辈人的智慧和坚韧
前言
过去几年,我一直在利用HTTP知识解决我的产品和技术的问题。在这个过程中,我一点一滴地了解到它的价值。我发现我的身边的人也是如此,并且我也看到了现今以HTTP为基础网络协议的应用越来越多。年初的一个机缘,我开始系统地投入研究HTTP。我拿到了HTTP的rfc,也买了一系列和HTTP有关的书。其中最厚的砖头书,我买了4本,放到车上、办公室、家、另一个办公室各一本。我反复地啃这些资料,正反地对照,并且使用node.js写代码做一些技术验证。
接触得多了,眼光和以往作为纯粹的用户相比开始有些变化。于是,很自然地有一天,我听到一个声音说:“为它写点什么,这准是个有趣的事儿”。因为:
它被使用得多,所以非常有用。
已有的资料,过于纠缠细节。
HTTP 本该简单,这正是它的优势。可要搞得复杂也不难,只要按着协议文本的严格和滴水不漏,然后堆积细节即可,这正是目前的资料所处的状态。所以,我可以:
直接了当。说清楚场景和价值,然后给出案例和验证代码。
高屋建瓴。有了架构,读者自己弄得明白细节。
我会用第一章通过案例引出HTTP的架构、概念、主线条。随后的章节,我为大卸八块的HTTP的每个块给出场景,然后是交互过程。有些特别难区别的概念和交互过程,还会来些命令行和少量代码做进一步地解释。所以,这正是一本HTTP的书,是程序员写就的,也写给程序员的一本书。我希望它看起来像是好的代码风格一样的直接了当、详略得当。
针对读者,它准能帮你省下不少时间,因为你本来需要啃砖头大的几块资料的,并且是反复啃才行——因为我就是。
现在,它就摆在你的面前。
关于作者
作者:刘传君
创建过产品,创过业。不好动,读书机器。倾慕unix哲学,以此书略表致敬。
可以通过 1000copy#gmail.com 联系到我。
实验环境
我常常发现,对于同一个概念,文字描述和代码验证是各有擅长的。有些文字难以表达的概念,要是换用代码或者命令行来表达却常常可以干净利索。所以我会适时地使用代码来补充说明一些描述性文字,协同帮助读者建构概念图景。
我选择的编码工具是Node.js。因为本书研究的是特定的HTTP领域,我使用的命令行最关键的工具是netcat 。
Node.js
选择Node.js 因为它小巧,跨平台,并且内置有我们需要的HTTP标准库。我远程办公使用的是一台Mac Book Air 笔记本,在公司时我使用的是一台 PC,Node.js 的跨平台特性,可以让我自由的切换环境而不会被一些细节感到懊恼。
安装Node在不同平台是不一样的,不过基本上雷同。无论Windows还是Mac,都有安装程序,一步步来就是,并没有什么特别需要讲的。
在Node.js之内,我们还需要它的一个框架,以便编写Http应用可以更加简易。这个框架叫做Express.js 。安装完 Node.js后,可以通过Node.js 内置的包管理工具(npm)来安装和初始化express,以便运行我给出的代码案例。只要:
$npm i express

就可以构建和准备好环境了。
netcat
同样能够解决问题的情况下,我更喜欢命令行而非图形界面的风格。这样做对读者有利,因为可以降低眼球识别负担——看命令输入和执行结果常常是最小化高相关性的信息输出。而使用图形化的浏览器的话,就不可避免的需要大量的截图,以及操作过程的说明(点击、点击、下拉、拖放),并且这些截图几乎必然会包含了很多和问题无关的信息。
我经常使用的netcat命令就是一个命令行工具。它专用于 http 协议测试验证,堪称此领域的万能瑞士军刀。 它可以在命令行中发送请求消息,接受并打印响应消息。关于netcat命令,可以在这里找到更多的信息: http://nc110.sourceforge.net。netcat命令行文件名为nc(Windows 操作系统上的文件名为nc.exe),可以输入nc执行此命令。此命令很简单,所以你未必需要专门学习,而可以跟着教程走,自然的学习它的用法。
代码
本书涉及的代码其中有些简单的会直接在书内贴出。有些复杂点的,我把它放到一个包内,这个文件包可以在此处下载:http://badrobot.sinaapp.com/code.zip。
HTTP 引入
假设这样的一个场景:一个站点example.com上有一个hello.htm 的页面,位于站点的根目录。那么我可以打开一个浏览器,在地址栏内输入URL(http://example.com/hello.htm),确认回车后等待一些时间,就可以看到一个html页面呈现在浏览器内。
看到这样漂亮的表象后,一般用户就拿到了他需要的资源,并且就此止步。而具有好奇心的程序员则希望知道浏览器和服务器的交互对话的具体内容,那么这时候就需要学习HTTP协议了。正是这个协议规定了如何把客户端的请求打包为HTTP请求消息并发送给服务器,也是它规定了把一个响应打包成HTTP响应消息,然后送回客户端。
还是以hello.htm资源的获取过程为例,具体过程是这样的:
客户端软件打开到服务器的连接,发送文本如下:
GET /hello.htm HTT ............

书籍插图:
书籍《http小书》 - 插图1
书籍《http小书》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » http小书 - (EPUB全文下载)