学习笔记 图解HTTP 第一章 了解Web及网络基础

133 阅读4分钟

学习背景

之前有看过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动画的笔记做了

TODO

1.2 HTTP协议为什么是放在ietf.org上面而不是放在w3c上面呢?

1.4 为什么无法掌握传输细节?