我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集👈👈
网络基础
- 网络基础
- 计算机网络
- IP地址
- 域名
- 客户端和服务器角色
网络基础
计算机网络
-
概念
- 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来
-
图示
-
作用
- 实现资源共享和信息传递的计算机系统
IP地址
-
概念
- 每个被连接到互联网上的设备,就会分配一个IP地址,用来唯一标识机器身份
-
图示
-
作用
- 通过IP地址,来查找具体的计算机
-
补充
- https://zhuanlan.zhihu.com/p/558884673
- 内网IP
- 内网,也叫局域网,从范围上来讲,内网就是小部分的网络,一般指特定环境下组成的网络。比如一个家庭多台计算机互联成的网络,也可以是学校和公司内部的大型局域网。因此,内网IP就是在此局域网内的IP地址。内网如果需要访问外网,可以通过路由器连接
- 公网IP
- 公网,俗称外网,又被叫做互联网,是连接不同地区局域网或者城域网计算机的通信的远程网络。通常可以跨接很大的物理范围,连接多个地区、城市和国家提供远距离通信,形成全球性的互联网络。因此,公网IP是分配给连接到互联网上的设备的地址,在全球范围内具有唯一性。使用公网IP的设备可以与互联网上的其他计算机随意互相访问。
- 公网IP和内网IP的区别
- 简单来说,公网IP地址就是指主机在整个互联网上的地址。内网IP地址是家里、公司内部和校园等小范围内的局域网的地址,是由交换机或者路由器进行分配的。它们的本质区别就是一个对外,一个对内
域名
-
概念
- 由于IP地址不好记,就想能给IP地址绑定一个别名就好了
- 购买域名后,通过设置,将域名和自己的计算机IP地址绑定在一起。就可以通过域名访问到你的计算机
-
注意
-
计算机之间通讯,即使我们使用的是域名,但是最终还是通过IP地址
-
在测试时,会出现通过域名可以访问网站,但是通过IP地址不能访问
-
原因:同一个IP地址可能对应多个不同的站点。单靠IP地址无法确定是哪个网站
- 可能服务器使用了虚拟主机技术
- 多个站点在同一台服务器上,存放在不同路径(a目录、b目录、c目录)
- 服务器进行相关的虚拟主机配置:Apache
<VirtualHost *:80> DocumentRoot/var/www/aServerName www.xxxx_a.com </VirtualHost>#==================================================<VirtualHost *:80> DocumentRoot/var/www/bServerName www.xxxx_b.com </VirtualHost>#==================================================<VirtualHost *:80> DocumentRoot/var/www/cServerName www.xxxx_c.com </VirtualHost>
- 再次通过域名访问该站点时
- 通过DNS做解析,得到IP地址:218.21.31.19
- 根据IP地址发送HTTP请求到指定服务器,并携带请求头字段Host(如:Host:www.xxxx_b.com)
- 服务器端根据Host值,找到真实站点路径,响应给客户端
- 也可能使用了方向代理技术
- 可能服务器使用了虚拟主机技术
客户端和服务器角色
- 服务器角色
- 提供服务:安装了各种服务软件的设备,一般是性能很高的计算机设备
- 提供服务:
- web服务(apache服务软件、IIS服务软件、Nginx服务软件等),使得外界可以访问到这个计算机上的web资源
- 数据库服务(Oracle数据库、SQL Server数据库、MySql数据库),使得外界可以通过sql语句来操作数据库
- …
- 客户端角色
- 享受服务:安装客户端软件的设备(计算机、笔记本、平板、手机等)
- 客户端软件设备:浏览器、QQ、微信登
- 客户端与服务器交互
- 一台服务器上的多个不同服务通过端口号来区分
- web服务:http协议是80端口,https协议是443端口
- 数据库服务:3306端口
- …
- 客户端与服务器的交互地址
IP地址:端口号
或者域名:端口号
- 前者(IP地址/域名)是确定服务器,后者(端口号)是确定服务
- 一台服务器上的多个不同服务通过端口号来区分
- 客户端与服务器直接如何通讯
- 只有一台计算机安装了服务软件,才能为客户端提供服务(server)
- 只有一台计算机安装了对应的客户端软件,才能享受对应的服务
- 想访问一台计算机,可以通过IP地址,为了方便也可以通过IP地址所绑定的域名进行访问
- 客户端软件就通过URL地址来访问服务器上的web资源
- URL组成
- 统一资源定位符
协议://host[:端口号]/路径...[?参数][#锚点]
# 协议 # http协议/https协议 # host # 主机名(IP地址/域名) # 端口号 # 80/443/... # 路径 # 访问资源的路径 # 参数 # 查询参数等 # 锚点 # 定位网页页面位置
- 例:
https://search.jd.com/Search?keyword=vivo
- 注意
- 一个URL地址,更改锚点并不会重新发送网络请求,也不会产生不同的新数据,所以,在后续爬虫中不用处理锚点
- 一个URL地址中没了传输的正确性,会对中文进行编码:%十六进制码值
- 所以,后续在爬虫中,碰到中文URL,也需要手动进行编码