《图解http阅读笔记》

第1章 了解web及网络基础
1.1 使用http协议访问web
  web页面不是凭空处理的。根据web浏览器地址栏中指定的url,web浏览器从web服务器端获取文件资源等信息,从而显示出web页面。
  web使用一种名为http的协议作为规范,完成从客户端到服务器端等一系列运作流程,而协议是指规则的约定。
1.2 http的诞生:http通常被翻译为超文本传输协议。但这种翻译并不严谨。严谨的译名应该为 超文本转移协议。但是前一翻译已约定俗称。
    李博士提出了一种能让远隔两地的研究者们共享知识的设想。最初的设想的基本理念是:借助多文档之间相互关联形成的超文本,连成相互参阅的www 万维网。
现在已经提出了3项www的构建技术,分别是html 超文本编辑语言;作为文档传递协议的http;指定文档所在地址的url统一资源定位符。
www这一名称,是web浏览器当年用来浏览超文本 的 客户端程序名称。现在用来表示这一系列的集合,也可简称为web。
1.2.1 web的成长时代
    1990年,cern成功研发了世界上第一台web服务器和web浏览器。
1.3 网络基础TCP/IP


1.4 与http关系紧密的协议:ip、tcp 和 dns
   1)ip间的通信依赖于mac地址。arp是一种用以解析地址的协议,根据通信方的ip地址就可以反查出对应的mac地址。
1.5 负责域名解析的dns服务。DNS服务是和http协议一样位于应用层的协议。它提供域名到ip地址之间的解析服务。
    计算机即可以被赋予ip地址,也可以被赋予主机名和域名。用户通常使用主机名或域名来访问对方的计算机,而不是通过ip地址来访问。
1.6 uri 和 url
    与uri(统一资源标识符)相比,我们更熟悉url(统一资源定位符)。url正是使用web浏览器等访问web页面时需要输入的网页地址。
    1)uri uniform规定统一的格式可方便处理多种不同类型的资源,而不用根据上下文环境来识别资源指定的访问方式。http:ftp:
       总上所述,uri就是由某个协议方案表示的资源的定位标识符。
第2章 简单的http协议
2.1 http协议用于客户端和服务器之间的通信
2.2 通过请求和响应的交换达成通信。http协议规定,请求从客户端发出,最后服务器响应该请求并返回。
    GET /index.htm HTTP/1.1
    Host: 139.196.10.244

GET /quote_file/1MIN/zn_1806_20180420.csv HTTP/1.1
Host: 139.196.10.244

起始行开头的get表示请求访问服务器的类型,称为方法。随后的/index.htm 指明了请求访问的资源对象。也叫作请求uri。最后的http/1.1 是http的版本号。


    HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Thu, 10 May 2018 07:29:26 GMT


2000


<!DOCTYPE html>

200 ok 表示请求的处理结果的状态码和原因短语。
2.3 http是不保存状态的协议
    http是一种不保存状态,即无状态协议。http协议自身不对请求和响应之间的通信状态进行保护。也就是说在http这个级别,协议对于发送过的请求或响应都不做持久化处理。这样是为了快速
    的处理大量事务,确保协议的可伸缩性,而特意包http协议涉及的如此简单。随着web的不断发展,因无状态而导致业务处理变得棘手。
    比如,用户登录到一家购物网站,即时它跳转到该站的其他页面后,也需要能继续保持登录状态。网站为了能够掌握是谁送出的请求,需要保存用户的状态。
    http/1.1 虽然是无状态协议,但是为了实现期望的保持状态功能,于是引入了cookie技术。有了cookie再用http协议通信,就可以管理状态了。
2.4 请求uri定位资源
    1)uri为完整的请求uri
    GET http://hao123.com/index.htm HTTP/1.1
    1)在首部字段host中写明网络域名或ip地址
       GET /index.htm HTTP/1.1
       Host: www.hao123.com
2.5 告知服务器意图的http 方法
    GET:获取资源,get方法用来请求已被uri识别的资源。指定的服务器返回响应的内容。也就是说如果请求的资源是文本,那就保持原样返回;如果是想CGI,通用网关接口那样的程序
    则返回执行后的输出结果。
    POST:传输实体主体,虽然使用GET方法也可以传输实体的主体,但一般不用GET方法进行传输,而是用POST方法。虽说post的功能与GET很相似,但post的主要目的并不是获取响应的主体内容。
     POST /submit.cgi HTTP/1.1
Host: www.hackr.jp
Content-Length:1560
 
响应:返回submit.cgi 接收数据的处理结果。
PUT:传输文件
DELETE:删除文件
    HEAD:获得报文首部,head方法和Get方法一样,只是不返回报文主体部分。用于确认uri的有效性及资源更新的日期时间。
OPTIONS:询问支持的方法,用来查询针对请求uri指定资源支持的方法。
2.6 使用方法下达命令
     向请求uri指定的资源发送请求报文时,采用称为方法的命令。方法有 GET、POST、HEAD。
2.7 持久链接节省通信量
    http协议的初始中,每进行一次http通信就要断开一次TCP链接。
    为了解决上述的TCP链接的问题,http/1.1 和 一部分的http/1.0 想出了持久连接(http keep-alive)。持久连接的特点是,只要任意一端没有明确提出断开连接,则保持tcp连接状态。

持久连接的好处在于减少了tcp连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。另外减少开销的那部分时间,使http请求和响应能够更早的结束,这样web页面的显示速度
也就响应的提高了。在http/1.1中,所有的链接默认都是持久链接。
2.8 使用cookie的状态管理
    http是无状态协议,它不对之前发生过得请求和响应的状态进行管理。假设要求登录认证的web页面本身无法进行状态管理,那么每次跳转新页面不是要再次登录,就是要在每次请求报文中
附加参数来管理登录状态。

cookie技术通过在请求和响应报文中 写入cookie信息来控制客户端的状态。cookie会根据服务器端发送的响应报文内的一个叫做set-cookie的首部字段信息,通知客户端保存cookie。当
下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入cookie值后发送出去。服务器端发现客户端发送过来的cookie后,会去检查究竟是从哪一个客户端发过来的连接请求,
然后对比服务器上的记录,最后得到之前的状态信息。
1)请求报文
   GET /index.htm HTTP/1.1
       Host: www.hao123.com
2)响应报文
        HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: made_write_conn=1295214458; Path=/; Domain=.169it.com
3)请求报文(自动发送保存着的cookie信息)
        GET /index.htm HTTP/1.1
       Host: www.hao123.com
   cookie: sid=134567890
第3章 http报文内的http信息。http报文本身是由多行数据构成的字符串文本。
1、获取部分内容的范围请求。执行范围请求时,会用到首部字段range来指定资金的byte范围。


第4章 返回结果的http状态码
      http状态码负责标识客户端http请求的返回结果、标记服务器端处理是否正常、通知出现错误等工作。


1、状态码的类别
   1xx  informational(信息性状态码)   接收的请求正在处理
   2XX  success(成功状态码)           请求正常处理完毕
   3XX  redirection(重定向状态码)     需要进行附加操作以完成请求
   4XX  client error(客户端错误状态码)服务器无法处理请求
   5xx  server error(服务器错误状态码) 服务器处理请求出错
2、4XX客户端错误
   4XX的响应结果表明客户端是发送错误的原因所在。
   400 bad request 无法理解该请求是否错误  
3、5XX 服务器错误
   5XX的响应结果表明服务器本身发送错误


第5章 与http写作的web服务器
  一台web服务器可搭载多个独立域名的web网站,也可作为通信路径上的中转服务器提升传输效率。
1、代理:代理是一种转发功能的应用程序,它扮演了位于服务器和客户端中间人的角色,接收由客户端发送的请求并转发给服务器,同时也接收服务器返回的响应并转发给客户端。
2、网关:利用网关可以由http请求转化为其他协议通信。网关的工作机制和代理十分相似。而网关能使通信线路上的服务器提供非http协议服务。


第六章 http首部
1、http首部字段是由首部字段名和字段值构成的,中间用冒号:分隔。
   content-type:text/html
   另外,字段值对应单个http首部字段可以由多个值
   keep-alive:timeout=15, max=100
2、通用首部字段
   Date  pragma connection upgrade
3、请求首部字段
   Accept accept-charset 。。。。
4、响应首部字段
   location age。。。
5、为cookie服务的首部字段
   set-cookie path expires
第7章 确保web安全的https   
      在http协议中可能存在信息窃听或者身份伪装等安全问题。使用https通信机制可以有效的防止这些问题。
1、http缺点
   使用明文(不加密),内容可能被窃听。不验证通信方的身份。无法证明报文的完整性,有可能被篡改。
   tcp/ip是可能被窃听的网络。即时已经加密过得通信,也会被窥视到通信的内容,这点和未加密的通信时相同的。只是说如果通信经过加密,就有可能让人无法破解报文的信息的含义,但加密后的
   报文信息本身还是会被看到的。
2、通信加密,
   一种方式就是将通信加密。http协议中没有加密机制,但可以通过和ssl 或tls 的组合使用,来加密http的通信内容。
   用SSL建立安全通信线路后,就可以在这条线路上进行http通信了。与ssl组合使用http被称为https 或 http over ssl。
   ssl 是安全的通信线路。
   另一种是内容的加密,还有一种将参与通信的内容本身加密的方式。由于http协议中没有加密机制,那么就对http协议传输的内容本身加密。即把http报文里所含内容进行加密处理。
3、防止内容篡改:使用md5 或者 sha-1 等散列值校验方法。
4、http + 加密 + 认证 + 完整性保护 = https
   https 并非是应用层的一种新协议。只是http通信接口部分用ssl 和 TLS 协议代替而已。通常,http直接和tcp通信。当使用ssl时,则演变成先和SSL通信,再由ssl和tcp通信了。
   简言之,所谓http是,其实就是身披ssl协议这层外壳的http。在采用了SSL后,http就拥有了https的加密、证书和完整性保护这些功能。
   ssl是独立于http协议,所以不光是http协议,其他运行在应用层的SMTP和telnet等协议均可配合ssl协议使用。可以说ssl是当今世界上应用最为广泛的网络安全技术。
5、共享秘钥加密的困境
   加密和解密同用一个秘钥的方式称为共享秘钥加密。也叫做对称秘钥加密。   
6、相互交换秘钥的公开秘钥加密技术
   ssl采用一种叫做公开秘钥加密(public-key cryptograhpy)的加密处理方式。
   以共享秘钥的方式加密时必须将秘钥也发送给对方。可究竟怎么样才能安全的转交。公开秘钥的加密方式很好的解决了共享秘钥的加密困难。
   公开秘钥加密使用一对非对称的秘钥。一把叫做私有秘钥,另一把叫做公开秘钥。私有秘钥不能让其他人知道,而公开秘钥则可以随意发布,任何人都可以获得。
   使用公开秘钥加密的方式,发送密文的一方使用对方的公开秘钥进行加密处理,对方收到被加密的信息后,再使用自己的私有秘钥进行解析。利用这种方式,不需要发送用来解密的私有秘钥,也不必担心秘钥被攻击者窃听而盗走。
   
7、https的安全通信机制。


第8章 确认访问用户身份的认证
1、核对登录者的信息
  1)密码;2)动态令牌;3)数字证书;4)生物认证:指纹、虹膜;5)ic卡;
2、base64编码方式,不是加密处理,不需要任何附加信息即可对其解码。


第9章 基于http的功能追加协议
1、使用浏览器进行全双工通信的websocket
   一旦web服务器与客户端之间建立起websocket协议的通信连接之后所有的通信都依靠这个专用协议进行。通信过程中可互相发送json、xml、html或图片等任意格式的数据。
2、websocket 协议的主要特点
   1)推送功能;支持由服务器向客户端推送数据的推送功能。这样,服务器可直接发送数据,不必等待客户端的请求。
   2)减少通信量:只要建立起websocket连接,就希望一直保持连接状态。


第10章构建web内容的技术
1、html 是为了发送web上的超文本而开发的语言。
2、设计应用css 可以指定如何展现html内的各种元素,属于样式表标准之一。   
3、servlet ,是一种能在服务器上创建动态内容的程序。
4、数据发布的格式及语言
   1)可扩展标记语言XML。
   2)json 轻量级数据标记语言。
第11章 web的攻击技术

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值