http权威指南 读书笔记

0、URL与资源,HTTP报文,连接管理,代理,缓存,集成点:网关隧道及中继,web机器人,http-ng,客户端识别与cookie机制,基本认证机制,摘要认证,安全http,
   实体和编码,内容协商与转码,
1、URI:统一资源定位符,URI有两种形式,分别称为URL和URN(统一资源名)
2、302:Redirect,到其他地方获取资源。
3、浏览器处理连接流程:
    1):浏览器从url中解析服务器的主机名
    2):浏览器将服务器的主机名转换成服务器的ip地址
    3):浏览器将端口号(如果有)解析出来
    4):浏览器建立一条与web服务器的tcp连接
    5):浏览器想服务器发送一条http的请求报文
    6):服务器向浏览器会送一条http相应报文
    7):关闭连接,浏览器显示文档。
4、web的结构组件
    1):代理:位于客户端和服务器之间的http中间实体,接受客户端http,转发给服务器(可以修改)
    2):缓存,http仓库,使用常用页面的副本可以保存在离客户端更近的地方。
    3):网关:联结其他应用程序的特殊web服务器,作为其他服务器的中间实体,通常将http流量转化为其他协议。
    4):隧道:对http报文进行盲转发的特殊代理,http隧道通常用来在一条或多条http连接上转发非http数据,转发时不会窥探数据。
        一种常见的用途就是通过http连接承载加密的安全套接字层(SSL,Secure Sockets Layer)流量,这样ssl流量就可以穿过只允许web流量通过的防火墙了。
    5):Agent代理:发起自动http请求的半智能web客户端.
5、大多数url方案的url语法都建立在这9个部分构成的通用格式上:
    <scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>
    例如:ftp://anonymous:my_password@ftp.prep.ai.mit.edu/pub/gnu

6、http报文的三个部分:起始行、首部、主体。

7、常用http方法:
    get:从服务器获取一份文档
    head:只从服务器获取文档首部
    post:想服务器发送需要处理的数据
    put:将请求的主题部分存储在服务器上
    trace:对可能经过代理服务器传送到服务器上去的报文进行追踪
    options:决定可以在服务器上执行哪些方法
    delete:从服务器上删除一份文档

8、http状态码:
    100~199信息性状态码
    200~299成功状态码
    300~399重定向状态码
    400~499客户端错误状态码
    500~599,服务器错误状态码

9、http连接管理中性能聚焦区域:
    #tcp连接握手时延
    #延迟确认
    #tcp慢启动
    #Nagle算法与tcp_nodelay
    #time_wait累积与端口耗尽

10、http允许在客户端和最终的源端服务器之间存在一串http中间实体(代理,高速缓存等)

11、web服务器实现了http和相关的tcp连接处理,负责管理web服务器提供的资源,以及对web服务器的配置,扩展、控制方面的管理。

12、重定向可用于下列情况:
    #永久搬离的资源,例如301 Moved Permanently
    #临时搬离的资源,例如303 See Other或者307 Temporary Redirect
    #URL增强,服务器经常用重定向来重写url,也就是生成一个新url后重定向,例如303 See Other或者307 Temporary Redirect
    #负载均衡,例如303 See Other或者307 Temporary Redirect
    #服务器关联,这个服务器没有,我就重定向到另一个服务器上给你了。例如303 See Other或者307 Temporary Redirect

13、web代理(proxy)服务器是网络的中间实体,代理位于客户端和服务器之间,扮演中间人的角色,在各个断电之间来回传送http报文。代理也是使用http协议。
   使用代理的一些情况:
    #儿童过滤器
    #文档访问控制
    #安全防火墙
    #web缓存
    #反向代理
    #内容路由器
    #转码器
    #匿名者,删除http报文中的用户信息,比如cookie,user-agent中的等
   代理服务器的种类:
    #出口代理    
    #访问(入口)代理
    #反向代理
    #网络交换代理
   代理是如何获取流量的?
    #修改客户端,直接让客户端http请求访问代理服务器
    #修改网络,网络拦截导入代理
    #修改dns的命名空间
    #修改web服务器
   代理服务器可以在转发报文时对其进行修改。
14、代理和网关的对比:
   代理连接的是两个或多个使用相同协议的应用程序,而网关连接则是两个或多个使用不同协议的端点。网关扮演的是“协议转换器”的角色,即使客户端和服务器使用的是
   不同的协议,客户端也可以通过它来完成与服务器之间的事务处理,例如如何把http的前台和pop e-mail后端连接起来呢?就需要一个http/pop网关,这样用户就可以
   通过http来读取e-mail了。

15、使用缓存有如下优点:
    #缓存减少了冗余数据传输
    #缓解了网络瓶颈问题
    #降低了对原始服务器的要求,服务器可以更快的相应
    #缓存降低了距离时延

16、网关接口可以有一下讨论:
    #在http和其他协议及应用之间起到接口作用的网关
    #允许不同类型的web程序互相通信的应用程序接口
    #允许用户在http连接上发送非http流量的隧道
    #作为一种简化的http处理,一次将数据转发一跳的中继

17、普通ssl琉璃那个如果直接发送给了外部一个服务器,是会被防火墙拒绝发送的,一般是通过包装在http中来进行发送的。
   最初开发web隧道是为了通过防火墙来传输加密的ssl流量,很多组织都会将所有琉璃那个通过分组过滤路由器和代理服务器以隧道方式传输,从而提升安全性,
   但有些协议如ssl,其信息是加密的,无法通过传统的代理服务器转发。
   https(ssl上的http)
   
18、http中继:是没有完全遵循个http规范,中继负责处理http中建立连接的部分,然后对字节进行盲转发,实现基本代理功能并对琉璃那个进行盲转发,而不执行任何首部
   和方法逻辑(由于不出离connection,所以有潜在挂起keep-alive连接可能,如果是简单单盲中继是单任务,且不支持Connection首部,就会挂起)。

19、机器人实现这要支持虚拟主机,可能上次那个泥土网图片由于host问题。

20、robots.txt仅仅是一个文件,而所谓限制爬虫爬取也只是一个标准,一般的爬虫需要先访问根目录下的robots.txt从而知道自己是否有这个权限进行爬取。

21、全文索引就是一个数据库,给他一个单词,它可以立即提供包含那个单词的所有文档。创建索引之后,就不需要对文档自身进行扫描了。

22、以下方法可以具有http用户识别的机制:
    #承载用户身份信息的http首部
    #客户端ip地址搜索,通过用户的ip地址对其进行识别
    #用户登录,用认证的方式来识别用户
    #胖url,一种url中嵌入识别信息的技术
    #cookie,一种功能强大且高效的持久身份识别技术

23、http提供了一个原生的质询/响应框架,http定义了两个官方的认证协议:基本认证和摘要认证。
    #http基本认证将用户名密码打包在一起,并用Base-64编码方式对其进行编码。
    #Base64编码会将一个8为字节序列划分为一些6位的块,用每个6位的块在一个特殊的由64个字符组成的字母表中选择一个字符,这个字母表包含大部分字母和数字。
    #Base-64编码可以接受二进制字符串、文本、国际字符表示的数据,将其暂时转换成一个易一直的字母表以便传输,在远端就可以解码出原始字符串,而无需担心传输
     错误了。

24、基本认证便捷灵活,但极不安全。用户名和密码都是以明文形式传送的,也没有才去任何防止对报文的篡改,安全使用基本认证的唯一方式就是将其与ssl配合使用。
    #摘要认证与基本认证兼容,但却更为安全。
        1):永远不会以明文方式在网络上发送密码,例如使用md5加密,用随机数防止重放攻击(相当于验证码)
        2):可以防止恶意用户捕获并重放认证的握手过程
        3):可以有选择地防止对报文内容的篡改
        4):防范其他几种常见的攻击方式
    #MD5加密,会将任意长度字节序列转换为一个128位的摘要,输出的128位的摘要通常会被写成32个十六进制的字符。

25、使用https时,所有http请求和相应数据在发送到网络之前,都要进行加密,https在http下面提供了一个传输级的密码安全层。即在传输层和应用层之间加入了一层安全层,
   可以用ssl或者tls(transport layer security)来实现。

26、https请求的服务器端口为443,也可以在http隧道上访问https,这是通过访问8080端口的代理,再由代理访问443的https

27、ssl握手过程:
    #交换协议版本号
    #选择一两个端都了解的密码
    #对两端的身份进行认证
    #生成临时的会话密钥,以便加密信道。

28、多部分表格提交,多部分范围响应。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值