《HTTP 权威指南》
第一篇: Web基础 (HTTP概述、 URL、HTTP报文、连接管理)
0. scheme:方案! 协议类型
1.HTTP:超文本传输(状态转移)协议;通信协议方案。 web浏览器与web服务器之间的双工通信! TCP是双向的。
2.web服务器(http协议) http服务器!
web服务器:web资源的宿主!
3.MIME类型: 数据格式标签;当web浏览器从服务器中取回一个对象时,会查看相关的MIME类型,浏览器根据此对此对象做出相应的处理! 媒体类型!(content-type来指定MIME类型)
4.URI:统一资源标识符(一个资源的名称)
URI分为两种: URL 和 URN
URL(统一资源定位符):通过资源所处位置来描述资源。
URN(统一资源名):通过资源的名字来描述资源。
5. HTTP请求方法:告诉服务器要执行什么动作!
一个HTTP事务:由一条请求命令和一个响应结果组成。
HTTP报文是纯文本的哦!
HTTP是基于TCP/IP的! 它是应用层协议。
6. 域名:IP地址的别名 Domain Name Service
7. 浏览器和web服务器交互流程:
A:建立到服务器80端口的连接
B: 发送HTTP请求
C: 读取HTTP响应
D: 关闭连接(与服务器断开)
8. 基本概念:
1.代理:位于客户端和服务器之间的HTTP之间实体。 功能:请求转发、请求和响应的过滤。
2.缓存:HTTP的仓库,将常使用的资源保存到离客户端近的地方。
3.隧道:对Http通信报文进行盲转发的特殊代理。 隧道可以在非http网络上转发数据。 http/ssl隧道
4.网关:是一种特殊的服务器,将http协议转换为其他协议。 协议转换!
http只能和http服务器通信; 不能和ftp服务器直接通信。 所以可以用网关来实现。
5.Ageng 代理: 比如爬虫程序(代表用户发起http请求的客户端程序)
浏览器也是哦!我们填空,浏览器会补充好请求报文然后发起请求。不然我们需要其他AP。
9. URL与资源
A:书籍的ISBN编号。
B: url:通过位置来识别资源 urn:通过名字来识别资源。
C: 方案://服务器位置/路径 (URL格式)
10. 相对URL:是不完整的,必须借助参照物。 base
11. URL构成:协议类型 用户 密码 主机 端口 资源路径 参数 查询 片段
12. 解析URL,自动扩展URL,主机名扩展、根据访问历史记录扩展。(浏览器自带的功能哦)
13. url 地址
urn 身份证号(唯一的) 备案服务器
14.起始行 首部 主体
15.HTTPS就是在HTTP和TCP之间插入了一个TLS或SSL的密码加密层。
16.三个因素: 服务器地址位置的远近(网络) 服务器的负载情况(服务器) 因特网的拥堵程度(网络)
17.浏览器有DNS服务器哦,缓存表。
18.HTTP连接: 串行、并行、持久、管道化连接。(性能调优)
第二篇:HTTP结构 (项目参考哦)
1.web服务器:对请求的处理和响应。
2.单线程web服务器 多进程web服务器 服用的I/O结构 复用的多线程I/O结构
3.apache: web服务器配置日志哦! soga
4.代理:公有、私有代理。
5.代理理解的是相同的协议的应用程序。网关是不同的协议。 网关:协议 转换器。
6.事务:一个请求和响应就是一个事务。
7.服务器设置,请求必须来自代理。 防止有人绕过哦!
8.代理:指的是用户代理。 反向代理指的是服务器代理,服务器加速器。
代理:请求转发,相当于内容路由器。 还可以转码,处理由服务器返回的内容哦。 响应式就用到了代理哦!
哦,路由器,就是请求转发哦!
9.缓存:
a:减少了冗余数据的传输,从而节省网络开销。
b:缓解网络瓶颈。
c:降低延迟,加载速度快,用户体验好。
10.瞬间拥塞:很多人同时访问一个资源。 会使得web服务器过载。
11.缓存:新鲜度检测 缓存命中/缓存未命中
12.私有缓存和公有缓存。
13.缓存:带宽、拥塞、距离
A:缓存处理步骤:
a:接受请求
b:解析请求报文
c:查找请求资源
d:做新鲜度检测
e:创建响应
f:发送
g:日志记载
14.HTTP机制:文档过期(服务器再验证) 定期检查服务器文档是否有改变。 没有改变,就更新http首部。
15.http的每一个请求都是要走缓存的哦! soga
16.Apache缓存控制,
17.缓存控制 如果基于访问次数,那么好多资源的http请求都会被减少哦! 直接从缓存中读取了。
第八章 网关 隧道 中继
1.将其他协议的流量包裹在http中,用http通过“隧道”和“中继”的方式将这些流量穿过防火墙。
2.网关:翻译器,网关是资源和应用程序之间的粘合剂。 应用程序请求网关,网关处理接受请求,生成和返回响应。
3.网关:协议转换
4.客户端网关 */HTTP 服务器网关 HTTP/*
5.网关:一般都会配置解密硬件!
6.CGI:通用网关接口。 RPC:remote process call 远程过程调用
SOAP:simple object access protocol 简单对象访问协议。
7.Web service:一组允许web应用程序之间相互通信的标准和协议。
8.tunnel:隧道 (另一种通过http应用程序访问使用非http协议的应用程序) 可以通过http发送非http流量
9.ssl流量通过分组过滤路由器和代理服务器
10.中继:HTTP代理 处理建立连接的过程,对字节进盲转发
第九章:Web机器人 robot、爬虫
1.根集:从哪开始?
2.环路的出现,要避免哦!
4.到时候的参考资料哦!
第十章 HTTP-NG
1.下一代http,解决当前版本的复杂性、可扩展性、性能及传输依赖性相关的问题。
第三篇 识别、认证与安全
第十一章:客户端识别与cookie机制
1.NAT:network address translation
NAT防火墙:隐藏了防火墙后面的那些实际的计算机的IP地址,将实际的客户端的IP地址转换为一个共享的防火墙的IP地址(端口不同)
2.cookie:实现持久化话,识别当前用户。 保存在硬盘。
a:cookie是如何生成的? 答:首次访问服务器,服务器给它添的。
b:cookie中保存服务器的信息,当再次访问此站点的时候,此cookie就会被发送到服务器。 用于用户的识别。
c:会话cookie 持久cookie
HTTP的两个认证协议!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
为什么需要认证:实现私有资源的保护。
第十二章:基本认证机制(安全性)
1.认证:你是谁? 通过用户名和密码来做认证。
2.HTTP的基本认证:对保密信息的请求需要认证,你是谁(输入用户名和密码)
3.安全域:security realm
4.基本认证: 给资源设置安全域,用户访问你的时候利用WWW-Authentication首部询问用户名和密码。
5.扰码(编码) Base64的格式
6.表单信息的安全传输:base64编码后也是明文,很容易被破解,所以要加密安全的传输。
方案一:SSL加密信道发送所有的HTTP事务
方案二:使用更安全的认证协议,摘要认证。
7.重放攻击
第十三章:摘要认证(安全性)
1.安全使用基本认证的方式: 基本认证 + SSL。
2.摘要认证:”绝不会通过网络发送密码“, 客户端不会发送密码,只是发送一个”指纹“或”摘要“。
密码————————摘要
人 ——————————指纹
3.摘要:对信息主体的浓缩,是一种单向函数。将无限的输入值转换为有限的浓缩值。 MD5
4.随机数防止重放攻击
第十四章:安全HTTP
1.服务器认证:客户端需要知道服务器是不是伪造的。 说暗号,暗号多少?
2.客户端认证:服务端需要知道客户端是不是伪造的用户。 说暗号?
3.HTTPS:所有的http请求和响应数据在发送网络之前,都需要进行加密。 传输过程是加密的。
在http下面提供了一个密码安全层(SSL、TLS) 安全套接字层 传输层安全
4.密钥:改变密码行为的数字化参数。
5. 对称密钥加密算法:编解码使用相同的密钥的算法。 反过来:非对称密钥加密算法(公开密钥加密技术)。
密码机:需要密钥。
编解码函数是互为反函数的哦!
6.数字签名:防伪造和纂改, 报文进行签名,说明是谁写的,证明未被纂改过。
7.数字证书:可信的第三方组织的担保。 签发的识别信息。 ID卡
8.HTTPS客户端实例: OpenSSL
第四部分:实体、编码和国际化
第十五章:实体和编码
1.content-type:媒体格式(MIME类型)
content-Language:说明语言
2.报文是箱子,实体是货物。
第十六章 国际化
1.服务器:Content-type: charset参数 Content-Language
客户端:Accept-Language:fr,en
Accept-Charset:utf-8
2.字符集:将字符——》二进制码 编码表 字符对应10进制的整数——》二进制
3.编码: 根据字符集, 将字符——》二进制 解码: 将二进制——》字符
第十七章:内容协商与转码
1.内容协商三种技术:客户端驱动的协商、服务器驱动的协商、透明协商。
内容:网页的语言版本:英文网页 中文网页?
手机页面、PC页面?
第五部分 内容发布与分发
第十八章:Web主机托管
1.虚拟主机托管,多个网站托管在一台物理计算机上。 通过Host首部进行虚拟主机托管。
2.服务器集群解决问题:
a:服务器宕机
b:网络中断或掉线
c:交通拥堵,web服务器过载。
服务器集群:配置相同的web服务器,可以相互替换,每个服务器上的内容是可以镜像复制的。 HA软件哦:高可用性
3.交换机:将请求发送到服务器上。
4.重定向的方式:
HTTP重定向
DNS重定向
5.CDN :内容分发网络就是对特定内容进行分发的专门网络。 这个网络中的节点:web服务器、反向代理、缓存。
6.反向代理服务器和镜像服务器区别:反向代理是需求驱动的!
7.CDN实现:客户端的请求被交换机拦截并发给代理缓存。
8.避免拥塞:服务器集群、分布式代理缓存、反向代理服务器。
第十九章:发布系统
第二十章:重定向与负载均衡
1.为什么重定向?
a:可靠地执行HTTP事务。
b:最小化时延。
c:节省网络宽带。
2.客户端 ——》 (代理、缓存、网关) ——》 服务器
3.重定向方法: HTTP重定向
DNS重定向: 一个域名对应多个IP。
任播寻址
IP MAC转发
IP地址转发
代理与缓存重定向技术
第二十一章:日志记录与使用情况追踪
1.日志作用:
a:用于排错
b:统计访问信息,提供决策支持。
答疑:
1.集群
答:
2.盲转发
答:
3.反向代理
答:
《HTTP 权威指南》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- PowerShell命令卸载Win10内置应用
Windows10系统预装了大批的应用,开始菜单右侧的磁贴即显示了其中的大部分,包括:人脉.日历.邮件.资讯.Xbox.Groove音乐.Camera相机.电影和电视.照片.手机助手.天气.OneNo ...
- LeetCode 笔记系列六 Reverse Nodes in k-Group [学习如何逆转一个单链表]
题目:Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. ...
- Java Web开发之分页(ajax)
1.需要用到的jar包.js文件 JSONArray().fromObject()需要的jar包: (1)commons-beanutils-1.8.3.jar (2)commons-collecti ...
- GTAC 2015 的视频和文档已经放出
视频见https://developers.google.com/google-test-automation-conference/2015/stream,文档见https://developers ...
- HDU5492 Find a path[DP 方差]
Find a path Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 第六章、Struts2数据校验
一.三种实现方式 ① 用validate()方法实现数据校验 继承ActionSupport类,该类实现了Validateable接口,该接口中定义了一个validate()方法,在自定义的Actio ...
- AC日记——二叉树最大宽度和高度 1501 codevs
1501 二叉树最大宽度和高度 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题目描述 Description 给出一个二叉树,输出它的最大宽 ...
- Ubuntu下初学ROS时所遇小问题
[1]运行命令$ rospack depends1 beginner_tutorials 时,提示 : [rospack] Error: no such package beginner_tutori ...
- checkbox与jq<转>
题:经常使用jQuery插件的attr方法获取checked属性值,获取的值的大小为未定义,此时可以用prop方法获取其真实值,下面介绍这两种方法的区别: 1.通过prop方法获取checked属性, ...
- Cordova - 使用Cordova开发iOS应用实战1(配置、开发第一个应用)
Cordova - 使用Cordova开发iOS应用实战1(配置.开发第一个应用) 现在比较流行使用 html5 开发移动应用,毕竟只要写一套html页面就可以适配各种移动设备,大大节省了跨平台应用的 ...