一. 了解web及网络基础
web: world wide web,万维网。是建立在互联网上的网络服务,分为网页和服务器。起初,互联网还只是少数人,为了能够远距离分享知识,前辈们提出一种设想:借助超文本(包含其他文档链接的文本),连成可相互参阅的万维网。现在有三项web构建技术:HTML可以作为网页页面、超文本传输协议http、指定资源所在地址的URL。所以web也指这一系列的集合。而http定义了浏览器发送请求和服务器发送文档的规则,来实现万维网的各种链接,底层用tcp保证可靠传输;
1. 网络基础TCP/IP
通常使用的网络(包括互连网)都是在TCP/IP协议族的基础上运作的,http当然也是,所以理解http还是需要知道一些TCP/IP知识。
- 什么是协议族?
网络上两台不同的主机要进行通信,首先肯定要定义一些的规则,比如发送数据的格式是什么样的?而这种规则就是协议,TCP/IP协议族就是一些相关协议的集合,如图:
- TCP/IP分层管理
主机与主机之间通过网络通信需要一个非常复杂的过程和很多的硬件设备,所以将这些分为四个层次,每层实现各自的功能并相互独立,这样也方便管理,每层都有属于自己的协议。
四层分别是应用层(http、ftp、dns等)、传输层(tcp、udp)、网际层(IP)、数据链路层。所以使用TCP/IP传输http报文流程如图:
3. 与http协议密不可分的协议
1)IP协议
网络传输时,IP层会加入自己的包含IP地址的头部交给MAC层,MAC层会加入包含MAC地址的头部;
IP地址用来确定数据传输目的地,MAC地址为硬件地址,需要通过它来找到相应的硬件,即下一个要转发到的主机;
路由器收到包后先暂存起来,再检查其包头,根据目的设备的IP地址查找转发表确定下一个设备IP(路由器或主机),再通过ARP协议将IP地址解析为MAC地址加到MAC帧中,最后根据转发表找到合适接口发出;如图:
问题:既然网络传输是通过MAC地址找到的目的主机,为什么还要有IP地址?
答:全世界有各种各样的网络,他们使用不同的硬件地址;相互转换异常复杂,而IP地址可以解决这个问题,通过IP地址唯一标识一台设备,通过ARP协议解析出相应硬件地址;
2)TCP协议
传输控制协议:需要先通过三次握手建立连接,收到数据要有确定(停止等待协议),数据传输结束要四次挥手释放连接,所以比较稳定,但也会额外占用资源,接收和发送数据会先放入缓冲里(滑动窗口协议),会根据网络情况决定报文段字节数;
3)DNS服务
网络中的计算机可以使用IP地址来唯一确定,比如192.168.1.110;但这对人来说并不直观,所以我们也使用域名来唯一标识一台主机,如hackr.jp;用户只需使用域名来访问目的主机,计算机就会自动使用DNS(域名解析服务)通过域名找到相应的IP地址,因为IP地址对于计算机来说是容易处理的。
所以HTTP、TCP、IP、DNS协议是协作完成通信的,如图:
4. 说明
本文为《图解HTTP》读书笔记,如有错误,请兄弟们指正,大家一起进步。