第一章:HTTP协议的作用
编写网络爬虫程序、分析抓包数据、实现HTTP服务器、提供网站REST API、修改后端定制框架等
第一章:了解Web及网络基础
1、HTTP:超文本传输协议
2、最初的设想是:一种能让远隔两地的研究者们共享知识;基本理念:借助多文档之间的相互关联形成的超文本,连成可相互参阅的WWW(万维网)
3、不同硬件、操作系统之间的通信,都需要一种规则,这种规则被称为协议。把互联网相关的协议集合起来的总称为TCP/IP。
4、TCP/IP协议族里最重要的一点就是分层。按层次分别为:应用层、传输层、网络层和数据链路层
**为什么TCP/IP要 层次化???
答:1.如果互联网只由一个协议统筹,那么某个地方需要改变设计时,就必须把所以部分整体换掉。而分层以后只需要把变动的层次换掉即可。把各个层之间的接口部分规划好以后,每个层次内部的设计就能够自由改动了。2.层次化之后,设计也变得简单了。处于应用层上的应用可以只考虑分派给自己的任务,而不需要弄清楚对方在地球上那个地方、对方的传输路线是怎样、是否确保传输送达等问题。
5、TCP/IP协议族各层的作用
应用层:应用层决定了向用户提供应用服务时通信的活动
传输层:传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输
网络层:网络层用来处理在网络上流通的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方;与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线
数据链路层:用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(网络适配器,即网卡)以及光纤等物理可见部分。(硬件上的范畴均在链路层的作用范围之内)
6、与HTTP关系密切的协议:IP、TCP和DNS
IP协议:位于网络层,作用是把各种数据包传输给对方,而要保证确实传送到对方哪里,需要满足各类条件,其中重要的两个条件就是IP地址和MAC地址。{IP地址指明了节点被分配到的地址;MAC地址是指网卡所属的固定地址,IP地址可以和MAC地址配对。IP地址可变换,MAC地址基本不能更改}{在网络上,通信的双方在同一局域网内的情况很少,通常是经过多台计算机和网络设备中转才能连接到对方,而进行中转时,会利用下一站中转设备的MAC地址来搜索下一个中转目标,这时需要采用ARP协议。ARP协议:ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查对应的MAC地址}
TCP协议:按层次分,TCP位于传输层,提供可靠的字节流服务(字节流服务:为了方便传输,将大块数据分割成以报文段为单位的数据包进行管理)。TCP协议是为了更容易传送大数据才把数据分割,而且TCP协议能够确认数据最终是否送达到对方 。{为了确认准确无误的将数据送达目标处,TCP协议采用了三次握手策略}
***如果在握手的过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包
各种协议和HTTP协议之间的关系图
DNS服务:DNS服务是和HTTP协议一样位于应用层的协议。它提供域名到IP地址之间的解析服务。(DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务)
7、URI和URL
URI:统一资源标识符。(用字符串标识某一互联网资源)
URL:统一资源定位符。(用字符串标识资源的地点,URL是URI的子集)
***绝对URI的格式
使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型。不
区分字母大小写,最后附一个冒号(:)。
登录信息(认证):指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份
认证)。此项是可选项。
服务器地址:使用绝对 URI 必须指定待访问的服务器地址。地址可以是类似
hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址
名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。
服务器端口号:指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动
使用默认端口号。
带层次的文件路径:指定服务器上的文件路径来定位特指的资源。这与 UNIX 系统的文件
目录结构相似。
查询字符串:针对已指定的文件路径内的资源,可以使用查询字符串传入任意参
数。此项可选。
片段标识符:使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个
位置)。但在 RFC 中并没有明确规定其使用方法。该项也为可选
项。