计算机网络(属实基础的内容)
学习计算机网络原理的必要性:
1.遇到问题能分析
2.了解模拟登陆的原理
3.对付反爬
4.爬取非浏览器的数据
网络协议:
通信设备的数据转发是通过协议完成的,类似法律的效应
书籍:计算机网络(自顶向下方法),TCP/IP协议族
一个完整的网络请求过程:
IP地址和url:
IP地址:类比门牌号
动态ip和静态ip:
ip格式:32位二进制数,每八位转为1个十进制数:X.X.X.X
动态ip:运营商拥有收回和发放的权限
静态ip:不变的ip地址,被封ip之后就不能访问特定网站
url:统一资源定位符
url协议
例如:
http://(协议) www.example.com (域名):80(端口,对应哪种应用程序)/path/to/myfile.html(路径)?key1=v1&key2=v2(参数)#maodian(锚点,指向同一页面的特定部分)
常用协议:http,https,file(指向本地的文件),ftp(指向服务器中ftp路径)
相对url:不包含协议和域名(实际也能识别),此举用来增强安全性和减少数据传输量
绝对url:包含全部内容
七层网络协议:
(最上层)应用:Http,ftp,pop3,DNS(应用程序,包括浏览器)
-表示(较少接触)
-会话(较少接触)
-传输: TCP,UDP
-网络:ICMP,IP,IGMP(路由器)
-数据链路:ARP,RARP(交换机)
-(最下层)物理层:物理传输介质(双绞线、集线器)
客户端(数据流从上层流向下层)---->网络----->服务端(数据流从下层流向上层)
除非是底层开发(诸如路由器开发)需要了解更复杂的协议接口,一般的服务器开发只需要socket编程
TCP/IP协议
socket编程:
算是一种端口,用来联系应用程序和TCP协议的接口
socket记录了客户端和服务端两者之间的连接相关的信息(并不是真正依靠socket进行了连接,原理类比TCP)