标签分类
当前位置:首页 > 网络与数据通信电子书 > HTTP电子书网盘下载
HTTP权威指南 HTTP权威指南
u010327286

u010327286 提供上传

资源
24
粉丝
17
喜欢
221
评论
14

    HTTP权威指南 PDF 超清版

    HTTP电子书
    • 发布时间:

    给大家带来的一篇关于HTTP相关的电子书资源,介绍了关于HTTP、指南方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小25 MB,David Gourley编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.2,更多相关的学习资源可以参阅 网络与数据通信电子书、等栏目。

  • HTTP权威指南 PDF 下载
  • 下载地址:https://pan.baidu.com/s/1Oh1SfzWiA5q4iPEgByVUsA
  • 分享码:mc86
  • HTTP权威指南 PDF

    HTTP及相关核心Web技术方面的权威著作
    权威专家详解HTTP协议、深入说明Web工作原理
    语言简洁精确,细节图解翔实
    高效Web开发、Web程序员必备权威指南
    HTTP是Web的基础,这里所说的Web,不仅只是通常意义上的Browser/Server端的开发,而是Web Service。
    HTTP初看上去似乎是非常简单的协议,是的,HTTP 0.9确实是非常简单的,简单到只有一个GET方法,更不用说什么持久连接了。HTTP协议还有一个显著特点,那就是其协议是明文的基于文本的。这使得通过工具与HTTP进行交互变得非常简单,*原始的telnet也可以发送HTTP请求(参考本书15页)。

    而大多数人对HTTP的了解也就是这种程度了(没有读此书之前的我也是这样)。此书的意义在于,它让你知道,HTTP不仅只有一个简单的GET,HTTP可以做为一种通用的分布式编程的协议。现如今Web上大行其道的所谓Restful Web Service,其基础就是HTTP,而提出Rest这个概念的Roy Fielding,也是HTTP协议(RFC2616)的主要作者之一

    HTTP权威指南》是HTTP及其相关核心Web技术方面的权威著作,主要介绍了Web应用程序是如何工作的,核心的因特网协议如何与架构构建块交互,如何正确实现因特网客户和服务器等。 《HTTP权威指南》适合所有想了解HTTP和Web底层结构的人阅读。

    目录

    • 第一部分 HTTP:Web的基础
    • 第1章 HTTP概述 3
    • 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
    • 第2章 URL与资源 25
    • 2.1 浏览因特网资源 26
    • 2.2 URL的语法 28
    • 2.2.1 方案——使用什么协议 29
    • 2.2.2 主机与端口 30
    • 2.2.3 用户名和密码 30
    • 2.2.4 路径 31
    • 2.2.5 参数 31
    • 2.2.6 查询字符串 32
    • 2.2.7 片段 33
    • 2.3 URL快捷方式 34
    • 2.3.1 相对URL 34
    • 2.3.2 自动扩展URL 37
    • 2.4 各种令人头疼的字符 38
    • 2.4.1 URL字符集 38
    • 2.4.2 编码机制 38
    • 2.4.3 字符限制 39
    • 2.4.4 另外一点说明 40
    • 2.5 方案的世界 40
    • 2.6 未来展望 42
    • 2.7 更多信息 44
    • 第3章 HTTP报文 45
    • 3.1 报文流 46
    • 3.1.1 报文流入源端服务器 46
    • 3.1.2 报文向下游流动 47
    • 3.2 报文的组成部分 47
    • 3.2.1 报文的语法 48
    • 3.2.2 起始行 50
    • 3.2.3 首部 53
    • 3.2.4 实体的主体部分 55
    • 3.2.5 版本0.9的报文 55
    • 3.3 方法 56
    • 3.3.1 安全方法 56
    • 3.3.2 GET 56
    • 3.3.3 HEAD 57
    • 3.3.4 PUT 57
    • 3.3.5 POST 58
    • 3.3.6 TRACE 58
    • 3.3.7 OPTIONS 60
    • 3.3.8 DELETE 60
    • 3.3.9 扩展方法 61
    • 3.4 状态码 62
    • 3.4.1 100~199——信息性状态码 62
    • 3.4.2 200~299——成功状态码 63
    • 3.4.3 300~399——重定向状态码 64
    • 3.4.4 400~499——客户端错误状态码 68
    • 3.4.5 500~599——服务器错误状态码 69
    • 3.5 首部 70
    • 3.5.1 通用首部 71
    • 3.5.2 请求首部 72
    • 3.5.3 响应首部 74
    • 3.5.4 实体首部 75
    • 3.6 更多信息 77
    • 第4章 连接管理 79
    • 4.1 TCP连接 80
    • 4.1.1 TCP的可靠数据管道 80
    • 4.1.2 TCP流是分段的、由IP分组传送 81
    • 4.1.3 保持TCP连接的正确运行 82
    • 4.1.4 用TCP套接字编程 84
    • 4.2 对TCP性能的考虑 85
    • 4.2.1 HTTP事务的时延 86
    • 4.2.2 性能聚焦区域 87
    • 4.2.3 TCP连接的握手时延 87
    • 4.2.4 延迟确认 88
    • 4.2.5 TCP慢启动 89
    • 4.2.6 Nagle算法与TCP_NODELAY 89
    • 4.2.7 TIME_WAIT累积与端口耗尽 90
    • 4.3 HTTP连接的处理 91
    • 4.3.1 常被误解的Connection首部 91
    • 4.3.2 串行事务处理时延 92
    • 4.4 并行连接 94
    • 4.4.1 并行连接可能会提高页面的加载速度 94
    • 4.4.2 并行连接不一定更快 95
    • 4.4.3 并行连接可能让人“感觉”更快一些 95
    • 4.5 持久连接 96
    • 4.5.1 持久以及并行连接 96
    • 4.5.2 HTTP/1.0 keep-alive连接 97
    • 4.5.3 Keep-Alive操作 98
    • 4.5.4 Keep-Alive选项 98
    • 4.5.5 Keep-Alive连接的限制和规则 99
    • 4.5.6 Keep-Alive和哑代理 100
    • 4.5.7 插入Proxy-Connection 102
    • 4.5.8 HTTP/1.1持久连接 104
    • 4.5.9 持久连接的限制和规则 104
    • 4.6 管道化连接 105
    • 4.7 关闭连接的奥秘 106
    • 4.7.1 “任意”解除连接 106
    • 4.7.2 Content-Length及截尾操作 107
    • 4.7.3 连接关闭容限、重试以及幂等性 107
    • 4.7.4 正常关闭连接 108
    • 4.8 更多信息 110
    • 4.8.1 HTTP连接 110
    • 4.8.2 HTTP性能问题 110
    • 4.8.3 TCP/IP 111
    • 第二部分 HTTP结构
    • 第5章 Web服务器 115
    • 5.1 各种形状和尺寸的Web服务器 116
    • 5.1.1 Web服务器的实现 116
    • 5.1.2 通用软件Web服务器 117
    • 5.1.3 Web服务器设备 117
    • 5.1.4 嵌入式Web服务器 118
    • 5.2 最小的Perl Web服务器 118
    • 5.3 实际的Web服务器会做些什么 120
    • 5.4 第一步——接受客户端连接 121
    • 5.4.1 处理新连接 121
    • 5.4.2 客户端主机名识别 122
    • 5.4.3 通过ident确定客户端用户 122
    • 5.5 第二步——接收请求报文 123
    • 5.5.1 报文的内部表示法 124
    • 5.5.2 连接的输入/输出处理结构 125
    • 5.6 第三步——处理请求 126
    • 5.7 第四步——对资源的映射及访问 126
    • 5.7.1 docroot 127
    • 5.7.2 目录列表 129
    • 5.7.3 动态内容资源的映射 130
    • 5.7.4 服务器端包含项 131
    • 5.7.5 访问控制 131
    • 5.8 第五步——构建响应 131
    • 5.8.1 响应实体 131
    • 5.8.2 MIME类型 132
    • 5.8.3 重定向 133
    • 5.9 第六步——发送响应 134
    • 5.10 第七步——记录日志 134
    • 5.11 更多信息 134
    • 第6章 代理 135
    • 6.1 Web的中间实体 136
    • 6.1.1 私有和共享代理 136
    • 6.1.2 代理与网关的对比 137
    • 6.2 为什么使用代理 138
    • 6.3 代理会去往何处 143
    • 6.3.1 代理服务器的部署 144
    • 6.3.2 代理的层次结构 144
    • 6.3.3 代理是如何获取流量的 147
    • 6.4 客户端的代理设置 148
    • 6.4.1 客户端的代理配置:手工配置 149
    • 6.4.2 客户端代理配置:PAC文件 149
    • 6.4.3 客户端代理配置:WPAD 150
    • 6.5 与代理请求有关的一些棘手问题 151
    • 6.5.1 代理URI与服务器URI的不同 151
    • 6.5.2 与虚拟主机一样的问题 152
    • 6.5.3 拦截代理会收到部分URI 153
    • 6.5.4 代理既可以处理代理请求,也可以处理服务器请求 154
    • 6.5.5 转发过程中对URI的修改 154
    • 6.5.6 URI的客户端自动扩展和主机名解析 155
    • 6.5.7 没有代理时URI的解析 155
    • 6.5.8 有显式代理时URI的解析 156
    • 6.5.9 有拦截代理时URI的解析 157
    • 6.6 追踪报文 158
    • 6.6.1 Via首部 158
    • 6.6.2 TRACE方法 162
    • 6.7 代理认证 164
    • 6.8 代理的互操作性 165
    • 6.8.1 处理代理不支持的首部和方法 166
    • 6.8.2 OPTIONS:发现对可选特性的支持 166
    • 6.8.3 Allow首部 167
    • 6.9 更多信息 167
    • 第7章 缓存 169
    • 7.1 冗余的数据传输 170
    • 7.2 带宽瓶颈 170
    • 7.3 瞬间拥塞 171
    • 7.4 距离时延 172
    • 7.5 命中和未命中的 173
    • 7.5.1 再验证 173
    • 7.5.2 命中率 175
    • 7.5.3 字节命中率 176
    • 7.5.4 区分命中和未命中的情况 176
    • 7.6 缓存的拓扑结构 177
    • 7.6.1 私有缓存 177
    • 7.6.2 公有代理缓存 177
    • 7.6.3 代理缓存的层次结构 179
    • 7.6.4 网状缓存、内容路由以及对等缓存 180
    • 7.7 缓存的处理步骤 181
    • 7.7.1 第一步——接收 181
    • 7.7.2 第二步——解析 182
    • 7.7.3 第三步——查找 182
    • 7.7.4 第四步——新鲜度检测 182
    • 7.7.5 第五步——创建响应 182
    • 7.7.6 第六步——发送 183
    • 7.7.7 第七步——日志 183
    • 7.7.8 缓存处理流程图 183
    • 7.8 保持副本的新鲜 183
    • 7.8.1 文档过期 184
    • 7.8.2 过期日期和使用期 185
    • 7.8.3 服务器再验证 185
    • 7.8.4 用条件方法进行再验证 186
    • 7.8.5 If-Modified-Since:Date再验证 187
    • 7.8.6 If-None-Match:实体标签再验证 189
    • 7.8.7 强弱验证器 190
    • 7.8.8 什么时候应该使用实体标签和最近修改日期 190
    • 7.9 控制缓存的能力 191
    • 7.9.1 no-Store与no-Cache响应首部 191
    • 7.9.2 max-age响应首部 192
    • 7.9.3 Expires响应首部 192
    • 7.9.4 must-revalidate响应首部 192
    • 7.9.5 试探性过期 193
    • 7.9.6 客户端的新鲜度限制 194
    • 7.9.7 注意事项 194
    • 7.10 设置缓存控制 195
    • 7.10.1 控制Apache的HTTP首部 195
    • 7.10.2 通过HTTP-EQUIV控制HTML缓存 196
    • 7.11 详细算法 197
    • 7.11.1 使用期和新鲜生存期 198
    • 7.11.2 使用期的计算 198
    • 7.11.3 完整的使用期计算算法 201
    • 7.11.4 新鲜生存期计算 202
    • 7.11.5 完整的服务器——新鲜度算法 202
    • 7.12 缓存和广告 204
    • 7.12.1 发布广告者的两难处境 204
    • 7.12.2 发布者的响应 204
    • 7.12.3 日志迁移 205
    • 7.12.4 命中计数和使用限制 205
    • 7.13 更多信息 205
    • 第8章 集成点:网关、隧道及中继 207
    • 8.1 网关 208
    • 8.2 协议网关 210
    • 8.2.1 HTTP/*:服务器端Web网关 211
    • 8.2.2 HTTP/HTTPS:服务器端安全网关 212
    • 8.2.3 HTTPS/HTTP客户端安全加速器网关 212
    • 8.3 资源网关 213
    • 8.3.1 CGI 215
    • 8.3.2 服务器扩展API 215
    • 8.4 应用程序接口和Web服务 216
    • 8.5 隧道 217
    • 8.5.1 用CONNECT建立HTTP隧道 217
    • 8.5.2 数据隧道、定时及连接管理 219
    • 8.5.3 SSL隧道 219
    • 8.5.4 SSL隧道与HTTP/HTTPS网关的对比 220
    • 8.5.5 隧道认证 221
    • 8.5.6 隧道的安全性考虑 221
    • 8.6 中继 222
    • 8.7 更多信息 224
    • 第9章 Web机器人 225
    • 9.1 爬虫及爬行方式 226
    • 9.1.1 从哪儿开始:根集 226
    • 9.1.2 链接的提取以及相对链接的标准化 227
    • 9.1.3 避免环路的出现 228
    • 9.1.4 循环与复制 228
    • 9.1.5 面包屑留下的痕迹 229
    • 9.1.6 别名与机器人环路 230
    • 9.1.7 规范化URL 230
    • 9.1.8 文件系统连接环路 231
    • 9.1.9 动态虚拟Web空间 232

    上一篇:C语言详解  下一篇:Linux命令行大全

    展开 +

    收起 -

    码小辫二维码
     

    HTTP相关电子书
    学习笔记
    网友NO.362380

    Node.js中HTTP模块与事件模块详解

    Node.js的http服务器 通过使用HTTP模块的低级API,Node.js允许我们创建服务器和客户端。刚开始学node的时候,我们都会遇到如下代码: 复制代码 代码如下: var http = require('http'); http.createServer(function (req,res) { res.end('Hello World\n'); }).listen(3000,"127.0.0.1"); console.log("Server funning at http://127.0.0.1:3000"); 这段代码的包括了http模块的信息,意思是: 1.从`Node.js`的核心请求HTTP模块并赋予一个变量,以便在以后的脚本中使用。 于是脚本就可以访问一些方法来通过`Node.js`使用`HTTP`。 2.使用`createServer`创建新的web服务器对象 3.脚本将一个匿名函数传递给服务器,告诉web服务器对象每当其接收到请求时会发生的是什么 4.脚本第4行定义了web服务器的端口和主机,这意味着可以使用`http://127.0.0.1:3000` 来访问服务器 Http头 对于每个HTTP请求和响应,都会发送HTTP头,HTTP头发送的是附加的信息,包括内容类型、服务器发送响应的日期以及HTTP状态码 http头包含了许多信息,以下是我的百度首页包含的http头的信息: 由于我的百度首页添加了较多的网站,所以这里的数据和读者们的可能不一样。从中我们可以看出百度是web服务器是BWS/1.1 下面是刚才上面那段代码的http头部信息: Node.js中的重定向 在node中,我们可以很容易地创建一个简单的服务器将访问者重定向到另……

    网友NO.878601

    Django使用HttpResponse返回图片并显示的方法

    做了一个关于Django的小案例,想要在网页中显示图片,直接在img标签的src属性写图片的路径是不能显示的,查询资料发现在Django中使用图片这类的资源相当繁琐需要进行一定D的配置,摸索了一会没有整明白,想到了写Java时使用文件流返回图片,于是想到使用该种方式来显示图片。 使用实例如下: views.py def my_image(request,news_id): d = path.dirname(__file__) #parent_path = path.dirname(d) print("d="+str(d)) imagepath = path.join(d,"static/show/wordimage/"+str(news_id)+".png") print("imagepath="+str(imagepath)) image_data = open(imagepath,"rb").read() return HttpResponse(image_data,content_type="image/png") #注意旧版的资料使用mimetype,现在已经改为content_type urls.py urlpatterns = [ url(r'^index/$', views.index,name="index"), url(r'^search/$', views.search,name="search"), url(r'^science/(?Pnews_id.+)/$', views.science,name="science"), strongurl(r'^image/(?Pnews_id.+)/$',views.my_image,name="image"),/strong ] temlate: img src="{% url 'show:image' param.id %}" alt="{{param.id}}"/ 以上这篇Django使用HttpResponse返回图片并显示的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

    网友NO.517617

    PHP使用socket发送HTTP请求的方法

    本文实例讲述了PHP使用socket发送HTTP请求的方法。分享给大家供大家参考,具体如下: socket方式 : $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);//socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec"=20, "usec"=0));socket_connect($socket, 'www.baidu.com', 80);//里面的换行代表 \r\n 注意拷贝的代码后面可能有空格$http = eofGET / HTTP/1.0Accept: */*User-Agent: Lowell-AgentHost: www.baidu.comConnection: Closeeof;socket_write($socket, $http, strlen($http));while($str = socket_read($socket, 1024)){ echo $str;}socket_close($socket); fsockopen方式 : $fp = fsockopen("www.baidu.com", 80, $errno, $errstr, 30);if (!$fp) { echo "$errstr ($errno)br /\n";} else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.baidu.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $http); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp);} 原始socket方式 : $fp = stream_socket_client("tcp://www.baidu.com:80", $errno, $errstr, 30);if (!$fp) { echo "$errstr ($errno)br /\n";} else { $http = eofGET / HTTP/1.0Accept: */*User-Agent: Lowell-AgentHost: www.baidu.comConnection: Closeeof; fwrite($fp, $http); while (!feof($fp)) { echo fgets($fp, 1024); } fclose($fp);} stream 方式(get): $http = eofHost: www.baidu.comUser-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=……

    网友NO.494958

    PHP HTTP 认证实例详解

    HP来实现HTTP的强制认证是十分简单的,只需简单的几行代码就可以实现,下面我们来看一个例子,然后结合这里例子我向大家详细介绍一下PHP实现HTTP认证。 ?php if(!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="系统名称"'); header('HTTP/1.0 401 Unauthorized'); echo '未通过HTTP认证.'; exit; } else { echo '认证通过.'; echo '用户名: '.$_SERVER['PHP_AUTH_USER']."\n"; echo '密码: '.$_SERVER['PHP_AUTH_PW']."\n"; }? 1.实现说明 怎么样,看到上面的代码了吧,就这么几行添加到你的程序页面上就可以实现了. 它是通过利用header()函数向客户端浏览器发送”Authentication Required”信息,强制其弹出一个用户名/密码输入窗口,当用户输入用户名和密码后,包含有URL的PHP脚本将会加上预定义变量PHP_AUTH_USER, PHP_AUTH_PW和AUTH_TYPE然后再次调用,这三个变量分别表示用户名,密码和认证类型(从PHP5.0.1起开始支持”Basic”和”Digest”两种认证方式),它们被保存在$_SERVER(从HP4.1.0起有效)或$HTTP_SERVER_VARS(从PHP3起有效)数组中具体应用时,我们可以把验证的几行代码写成函数,只要判断到用户变量不存在或验证不正确就一直执行该函数并弹出窗口,而且还可以设置错误登录几次就不允许该用户访问,具体的使用大家使劲的发散思考吧. 2.注意事项: 1.这段代码必须放到程序的开始,且在其开始执行之前不能有……

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明