第一章
通常使用的网络(包括互联网)是在 TCP/IP 协议族的基础上运作 的。而 HTTP 属于它内部的一个子集。
像这样把与互联网相关联的协议集合起来总称为 TCP/IP。
应用层:TCP/IP协议族预存各类应用服务,比如FTP(文件传输协议),DNS(域名系统)...HTTP协议在应用层
传输层:TCP(传输控制协议)和UDP(用户数据报协议),传输数据包
网络层:规定传输路线
数据链路层:硬件部分
page17
11/2
利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端(客户端)从应用层从上往下走,接收端(服务器端)从数据链路层从下往上走到应用层
传输数据的时候,每经过一层时必定会被打上一个该层的首部信息:(应用层) HTTP数据-> (传输层)[TCP首部 [HTTP数据] ] -> (网络层)[IP首部 [TCP首部 [HTTP数据] ] ] -> (链路层)[以太网首部 [IP首部 [TCP首部 [HTTP数据] ] ] ]
接受数据的时候,每经过一层会把对应首部去掉: (链路层)[以太网首部 [IP首部 [TCP首部 [HTTP数据] ] ] ] -> (网络层)[IP首部 [TCP首部 [HTTP数据] ] ] -> (传输层)[TCP首部 [HTTP数据] ] -> (应用层) HTTP数据
使用ARP协议凭借MAC地址进行通信:A想给B发送数据包,知道B的IP地址,利用路由器(只有MAC地址)进行中转,通过B的MAC地址找到B中转给B,ARP是地址解析协议:根据IP地址反查出MAC地址(IP地址可变换,MAC地址基本不变)
page21
TCP把数据分割成数据报传送,并三次握手确定数据是否发送成功:
发送方SYN (请求)-> 接收方
发送方<-SYN/ACK (确认并请求)接收方
发送方ACK (确认)-> 接收方
DNS(域名解析协议)把域名解析为IP或逆向解析
IP 协议、TCP 协议和 DNS 服务在使用 HTTP 协议的通信过程中各自发挥了哪些作用:
http生成请求报文 -> TCP分割报文,三次握手 -> IP路由器中转传送 -> TCP重组报文 -> http处理报文内容
URL是URI的子集,但某些时候,URL可以指代URI,要进行HTTP协议通信要遵循RFC(request for comments征求修正意见书)
第二章
GET /index.htm HTTP/1.1
Host: hackr.jp
name=xxx
请求报文是由:
请求方法,请求URI,协议版本,请求首部字段和内容主体
HTTP协议没有记忆的不保存,每次传输后就忘了,为了实现期望的保持状态功能引入cookie技术
每一次HTTP协议及就要断开一次TCP连接,TCP建立要三次握手,TCP断开要四次,每次申请页面资源都会因为顺带请求别的资源而造成通信量的开销
服务器端生成cookie放在响应中发给客户端,客户端收到后保存,下次客户端发的请求就是添加了cookie的,服务器收到这个请求就知道是啥(有记忆了)
第三章
第四章
状态码:反应服务器工作情况
2 3 4 5
第五章
代理--中间人
网关--服务器 可以将HTTP请求转换为其他协议通信
隧道:与远距离服务器通信
缓存:是代理服务器对响应资源的一个备份,要找原服务器确认疑似过期资源的期限
第六章
no-store 才是真正地不进行缓存
no-cache是不缓存过期的资源
Cookie 的 HttpOnly 属性是 Cookie 的扩展功能,它使 JavaScript 脚本 无法获得 Cookie。其主要目的为防止跨站脚本攻击(Cross-site scripting,XSS)对 Cookie 的信息窃取。
page135
HTTP缺点:不加密,不认证,不能保证完整性
对策:HTTPS 使用公钥加密方式交换对称加密中要是用的密钥
图解:从仅使用服务器端的公开密钥 证书(服务器证书)建立 HTTPS 通信
第八章
身份认证:密码知识证明(口令),物理介质证明(IC卡),实体特征证明(生物特征)
第九章
解决HTTP瓶颈标准:
1.一条连接上只可发送一个请求。
2.请求只能从客户端开始。客户端不可以接收除响应以外的指 令。
3.请求 / 响应首部未经压缩就发送。首部信息越多延迟越大。
4.发送冗长的首部。每次互相发送相同的首部造成的浪费较 多。
5.可任意选择数据压缩格式。非强制压缩发送。
对策:SPDY
SPDY功能:多路复用流,赋予请求优先级,压缩HTTP首部,推送,服务器提示
WebSocket
WebSocket功能:推送,减少通信量
第十章
构建web内容的技术:HTML,脚本语言JavaScript,XML(扩展可标记语言)
使用 DOM 可以将 HTML 内 的元素当作对象操作,如取出元素内的字符串、改变那个 CSS 的属 性等,使页面的设计发生改变。
第十一章
web攻击 :
主动攻击:具有代表性的SQL注入攻击和OS命令注入攻击
被动攻击:把攻击代码嵌入HTTP请求中,代表性的攻击是跨站脚本攻击和跨站点请求伪造。
这本书断断续续看完花了半个月
This is not the end