学习背景
之前有看过HTTP权威指南,但是看了不到3分之1就搁一边了.主要还是觉得看的东西太抽象,感觉看了没什么实际用处.但是在最近一年多的工作中,经常会遇到一些HTTP相关的问题,完全不知道从何入手去解决,只能到处乱搜索.想想还是把基础内容全部过一下,遇到问题至少有个思路和方向.
但是权威指南确实太恐怖了,讲的非常啰嗦,特别厚,所以找了本相对简单的书先看一看,看完了有点大概的思路了再去看权威指南.
不过把这几章看下来,又觉得图解HTTP讲的太笼统了,很多东西一带而过,根本不知道讲的啥,但不管怎么样,书买来了,看了,就把笔记做一下吧,只有做完笔记,思路才会清晰.虽然感觉这本书做笔记有点多余,就算是练习练习自己的耐心了吧.
1.1 使用HTTP协议访问Web
HyperText Transfer Protocol
从浏览器输入网址到网页呈现在我们眼前,是基于HTTP协议完成的.
1.2 HTTP的诞生
这个历史讲的就没有CSS揭秘的那个作者讲的好了,就是罗列罗列罗列,一点儿意思也没有.只是感慨一下,高科技的东西还是得由高科技的人才发明啊,我们现在用的东西,都是搞柱研究的人整的一个副业而已...
1.3 网络基础TCP/IP
1.3.1 TCP/IP协议族
在网上耍的时候,有N多种协议,统称为TCP/IP协议,而不仅仅只有TCP和IP这两种协议.
1.3.2 TCP/IP的分层管理
- 应用层
- 就是我们看到的各种应用,浏览器,FTP,QQ,优酷,LOL这些,发起请求即HTTP报文(装个包裹填个快递单子),然后交给传输层(菜鸟驿站)
- HTTP
- FTP
- DNS
- 传输层
- 有点像发送器,把东西发射出去的作用,分割报文并且打上标记序号(检查包裹并用大头笔做些标记),再交给网络层(快递公司)
- TCP(HTTP通过它来发送)
- UDP(DNS和视频聊天通过它来发送)
- 网络层
- 把数据包处理好交给链路层,有点像快递公司直接把包裹放到车上
- IP(反查MAC地址才能知道真正请求到哪)
- 链路层
- 硬件部分,有点类似于快递系统中的车子,道路,扫码枪这些
- 操作系统
- 网卡
- 光纤等
1.4 与HTTP密切的协议:IP,TCP和DNS
1.4.1 IP协议
IP协议是负责把各种数据库传送给对方,IP地址就只是一个地址,并且要配合MAC地址一起才能最终把数据传递过去.
- ARP协议(Address Resolution Protocol)
- 根据IP地址反查MAC地址
- 找到MAC地址之后,再向那台设备发送数据
1.4.2 TCP协议
-
字节流服务(Byte Stream Service)
- 把请求报文分割成报文段进行管理,就是把大数据分成小数据,分块传输
-
三次握手(three-way handshaking)
- 向服务器发送SYN(synchronize)数据包(相当于是问服务器,你听得到我说话不?)
- 服务器收到SYN数据包后,回复一个SYN+ACK(acknowledgement)的数据包(相当于是说,我听得到,你听不听得到我说话?)
- 客户端收到数据包后,再向服务器发一个ACK数据包(相当于是说,我也听得到,我打电话是想问你啥子事...)
- 这样才正式建立连接

1.5 负责域名解析的DNS服务
一台设备的标志有很多
- MAC地址
- 主机名
- IP地址
- 域名
我们访问的是域名,所以需要DNS中转一下解析成IP地址,再由IP协议把IP地址解析成MAC地址,再才开始走链路层发送数据
这里讲的太笼统了.在网上查了下DNS服务是通过UDP协议连接的,所以不需要三次握手
1.6 各种协议与DNS协议的关系
执行顺序是从上到下,依次执行
- DNS协议
- 将域名转换成IP
- HTTP协议
- 生成针对域名/IP的请求报文
- TCP协议
- 将请求报文分割成报文段
- IP协议
- 中转和运输报文段
1.7 URI和URL
这里没看太明白,还是权威指南上的这部分详细些,就不做笔记了.留着去权威指南上做笔记.现在要去洗洗睡了,明天把CSS动画的笔记做了