web复习资料.docx
《web复习资料.docx》由会员分享,可在线阅读,更多相关《web复习资料.docx(21页珍藏版)》请在冰豆网上搜索。
web复习资料
第一章
1.B/S和C/S结构
2.客户软件的特点
被用户调用后运行,在打算通信时主动向远地服务器发起通信(请求服务)。
因此,客户程序必须知道服务器程序的地址。
不需要特殊的硬件和很复杂的操作系统。
3.服务器软件的特点
一种专门用来提供某种服务的程序,可同时处理多个远地或本地客户的请求。
系统启动后即自动调用并一直不断地运行着,被动地等待并接受来自各地的客户的通信请求。
因此,服务器程序不需要知道客户程序的地址。
一般需要强大的硬件和高级的操作系统支持。
4.对等连接方式
对等连接(peer-to-peer,简写为P2P)是指两个主机在通信时并不区分哪一个是服务请求方还是服务提供方。
只要两个主机都运行了对等连接软件(P2P软件),它们就可以进行平等的、对等连接通信。
双方都可以下载对方已经存储在硬盘中的共享文档。
HTTP的报文结构
HTTP有两类报文:
请求报文——从客户向服务器发送请求报文。
响应报文——从服务器到客户的回答。
由于HTTP是面向正文的(text-oriented),因此在报文中的每一个字段都是一些ASCII码串,因而每个字段的长度都是不确定的。
6.HTTP请求报文的一些方法
方法(操作)意义
OPTION请求一些选项的信息
GET请求读取由URL所标志的信息
HEAD请求读取由URL所标志的信息的首部
POST给服务器添加信息(例如,注释)
PUT在指明的URL下存储一个文档
DELETE删除指明的URL所标志的资源
TRACE用来进行环回测试的请求报文
CONNECT用于代理服务器
状态码
1xx表示通知信息的,如请求收到了或正在进行处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,表示要完成请求还必须采取进一步的行动。
4xx表示客户的差错,如请求中有错误的语法或不能完成。
5xx表示服务器的差错,如服务器失效无法完成请求。
在服务器上存放用户的信息
万维网站点使用Cookie来跟踪用户。
Cookie表示在HTTP服务器和客户之间传递的状态信息。
使用Cookie的网站服务器为用户产生一个唯一的识别码。
利用此识别码,网站就能够跟踪该用户在该网站的活动。
超文本标记语言HTML
超文本标记语言HTML中的Markup的意思就是“设置标记”。
HTML定义了许多用于排版的命令(即标签)。
HTML把各种标签嵌入到万维网的页面中。
这样就构成了所谓的HTML文档。
HTML文档是一种可以用任何文本编辑器创建的ASCII码文件。
HTML文档
仅当HTML文档是以.html或.htm为后缀时,浏览器才对此文档的各种标签进行解释。
如HTML文档改换以.txt为其后缀,则HTML解释程序就不对标签进行解释,而浏览器只能看见原来的文本文件。
当浏览器从服务器读取HTML文档后,就按照HTML文档中的各种标签,根据浏览器所使用的显示器的尺寸和分辨率大小,重新进行排版并恢复出所读取的页面。
两种不同的链接
远程链接:
超链的终点是其他网点上的页面。
本地链接:
超链指向本计算机中的某个文件。
第四章
IP地址及其表示方法
把整个因特网看成为一个单一的、抽象的网络。
IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。
IP地址现在由因特网名字与号码指派公司ICANN(InternetCorporationforAssignedNamesandNumbers)进行分配
IP地址的编址方法
分类的IP地址。
这是最基本的编址方法,在1981年就通过了相应的标准协议。
子网的划分。
这是对最基本的编址方法的改进,其标准[RFC950]在1985年通过。
构成超网。
这是比较新的无分类编址方法。
1993年提出后很快就得到推广应用。
运输层的两个主要协议
TCP/IP的运输层有两个不同的协议:
用户数据报协议UDP(UserDatagramProtocol)
传输控制协议TCP(TransmissionControlProtocol)
TCP与UDP
UDP在传送数据之前不需要先建立连接。
对方的运输层在收到UDP报文后,不需要给出任何确认。
虽然UDP不提供可靠交付,但在某些情况下UDP是一种最有效的工作方式。
TCP则提供面向连接的服务。
TCP不提供广播或多播服务。
由于TCP要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。
这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
套接字的作用
当应用进程需要使用网络进行通信时就发出系统调用,请求操作系统为其创建“套接字”,以便把网络通信所需要的系统资源分配给该应用进程。
操作系统为这些资源的总和用一个叫做套接字描述符的号码来表示,并把此号码返回给应用进程。
应用进程所进行的网络操作都必须使用这个号码。
通信完毕后,应用进程通过一个关闭套接字的系统调用通知操作系统回收与该“号码”相关的所有资源。
1.端口的作用
由于进程的创建和撤销都是动态的,发送方几乎无法识别其他机器上的进程。
有时我们会改换接收报文的进程,但并不需要通知所有发送方。
我们往往需要利用目的主机提供的功能来识别终点,而不需要知道实现这个功能的进程。
2.端口号(protocolportnumber)
解决这个问题的方法就是在运输层使用协议端口号(protocolportnumber),或通常简称为端口(port)。
虽然通信的终点是应用进程,但我们可以把端口想象是通信的终点,因为我们只要把要传送的报文交到目的主机的某一个合适的目的端口,剩下的工作(即最后交付目的进程)就由TCP来完成。
3.TCP的端口
端口用一个16位端口号进行标志。
端口号只具有本地意义,即端口号只是为了标志本计算机应用层中的各进程。
在因特网中不同计算机的相同端口号是没有联系的。
4.三类端口
熟知端口,数值一般为0~1023。
登记端口号,数值为1024~49151,为没有熟知端口号的应用程序使用的。
使用这个范围的端口号必须在IANA登记,以防止重复。
客户端口号或短暂端口号,数值为49152~65535,留给客户进程选择暂时使用。
当服务器进程收到客户进程的报文时,就知道了客户进程所使用的动态端口号。
通信结束后,这个端口号可供其他客户进程以后使用。
5.域名系统DNS
许多应用层软件经常直接使用域名系统DNS(DomainNameSystem),但计算机的用户只是间接而不是直接使用域名系统。
因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS。
名字到IP地址的解析是由若干个域名服务器程序完成的。
域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器。
对称密钥密码体制
所谓常规密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
这种加密系统又称为对称密钥系统。
6.数据加密标准DES
数据加密标准DES属于常规密钥密码体制,是一种分组密码。
在加密前,先对整个明文进行分组。
每一个组长为64位。
然后对每一个64位二进制数据进行加密处理,产生一组64位密文数据。
最后将各组密文串接起来,即得出整个的密文。
使用的密钥为64位(实际密钥长度为56位,有8位用于奇偶校验)。
7.DES的保密性
DES的保密性仅取决于对密钥的保密,而算法是公开的。
尽管人们在破译DES方面取得了许多进展,但至今仍未能找到比穷举搜索密钥更有效的方法。
DES是世界上第一个公认的实用密码算法标准,它曾对密码学的发展做出了重大贡献。
目前较为严重的问题是DES的密钥的长度。
现在已经设计出来搜索DES密钥的专用芯片。
公钥密码体制
公钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。
公钥密码体制的产生主要是因为两个方面的原因,一是由于常规密钥密码体制的密钥分配问题,另一是由于对数字签名的需求。
现有最著名的公钥密码体制是RSA体制,它基于数论中大数分解问题的体制,由美国三位科学家Rivest,Shamir和Adleman于1976年提出并在1978年正式发表的。
8.加密密钥与解密密钥
在公钥密码体制中,加密密钥(即公钥)PK是公开信息,而解密密钥(即私钥或秘钥)SK是需要保密的。
加密算法E和解密算法D也都是公开的。
虽然秘钥SK是由公钥PK决定的,但却不能根据PK计算出SK。
应当注意
任何加密方法的安全性取决于密钥的长度,以及攻破密文所需的计算量。
在这方面,公钥密码体制并不具有比传统加密体制更加优越之处。
由于目前公钥加密算法的开销较大,在可见的将来还看不出来要放弃传统的加密方法。
公钥还需要密钥分配协议,具体的分配过程并不比采用传统加密方法时更简单。
9.公钥算法的特点
加密和解密的运算可以对调
在计算机上可容易地产生成对的PK和SK。
从已知的PK实际上不可能推导出SK,即从PK到SK是“计算上不可能的”。
加密和解密算法都是公开的。
公钥算法的特点(续)
加密和解密的运算可以对调,即
在计算机上可容易地产生成对的PK和SK。
从已知的PK实际上不可能推导出SK,即从PK到SK是“计算上不可能的”。
加密和解密算法都是公开的。
10.数字签名
数字签名必须保证以下三点:
(1)报文鉴别——接收者能够核实发送者对报文的签名;
(2)报文的完整性——发送者事后不能抵赖对报文的签名;
(3)不可否认——接收者不能伪造对报文的签名。
现在已有多种实现各种数字签名的方法。
但采用公钥算法更容易实现。
数字签名的实现
因为除A外没有别人能具有A的私钥,所以除A外没有别人能产生这个密文。
因此B相信报文X是A签名发送的。
若A要抵赖曾发送报文给B,B可将明文和对应的密文出示给第三者。
第三者很容易用A的公钥去证实A确实发送X给B。
反之,若B将X伪造成X‘,则B不能在第三者前出示对应的密文。
这样就证明了B伪造了报文。
报文鉴别
许多报文并不需要加密但却需要数字签名,以便让报文的接收者能够鉴别报文的真伪。
然而对很长的报文进行数字签名会使计算机增加很大的负担(需要进行很长时间的运算。
当我们传送不需要加密的报文时,应当使接收者能用很简单的方法鉴别报文的真伪。
报文摘要MD
(MessageDigest)
A将报文X经过报文摘要算法运算后得出很短的报文摘要H。
然后然后用自己的私钥对H进行D运算,即进行数字签名。
得出已签名的报文摘要D(H)后,并将其追加在报文X后面发送给B。
B收到报文后首先把已签名的D(H)和报文X分离。
然后再做两件事。
用A的公钥对D(H)进行E运算,得出报文摘要H。
对报文X进行报文摘要运算,看是否能够得出同样的报文摘要H。
如一样,就能以极高的概率断定收到的报文是A产生的。
否则就不是。
报文摘要的优点
仅对短得多的定长报文摘要H进行数字签名要比对整个长报文进行数字签名要简单得多,所耗费的计算资源也小得多。
但对鉴别报文X来说,效果是一样的。
也就是说,报文X和已签名的报文摘要D(H)合在一起是不可伪造的,是可检验的和不可否认的。
报文摘要算法
报文摘要算法就是一种散列函数。
这种散列函数也叫做密码编码的检验和。
报文摘要算法是防止报文被人恶意篡改。
报文摘要算法是精心选择的一种单向函数。
可以很容易地计算出一个长报文X的报文摘要H,但要想从报文摘要H反过来找到原始的报文X,则实际上是不可能的。
若想找到任意两个报文,使得它们具有相同的报文摘要,那么实际上也是不可能的。