脚本语言
脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
基本概述
脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。
打开Windows系统中常见的扩展名为.bat的批处理文件,会出现一个黑色窗口,若干白字迸发而出,这就是批处理文件,也就是脚本文件。
最常见的脚本语言有:JavaScript,ASP,JSP,PHP,SQL,Shell,Python等。
应用 Shell 脚本完成对数据库系统一些重要进程的监控以及系统开机服务的自动开启工作。比如服务器的启停工作。
脚本语言与编程语言的区别
脚本语言和编程语言之间没有绝对的界限,它们之间存在着一定的模糊性。但一般来说,我们可以从以下几个方面来区分:
特征 | 脚本语言 | 编程语言 |
---|---|---|
执行方式 | 解释执行 | 编译执行 |
类型系统 | 动态类型,弱类型 | 静态类型,强类型 |
应用场景 | 控制软件、网页脚本、自动化任务 | 系统软件、大型应用、游戏开发 |
开发周期 | 快速开发 | 开发周期较长 |
性能 | 执行效率相对较低 | 执行效率较高 |
常见语言 | JavaScript,ASP,JSP,PHP, SQL,Shell,Python等等 |
C/C++,C#,Java,Go等等 |
网络爬虫
网络爬虫(又被称为网页蜘蛛、网络机器人、蚂蚁、自动索引、模拟程序或者蠕虫),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
通俗的讲,爬虫就是能够自动访问互联网并将网站内容下载下来的的程序或脚本,类似一个机器人,能把别人网站的信息弄到自己的电脑上,再做一些过滤,筛选,归纳,整理,排序等等。
可以做爬虫的语言:PHP,JAVA,C#,C++,Python等。
Python进行爬虫开发是有其独特的优势,上手快,难度低,第三方插件很完善,开发难度低。这些优点是其他语言不能比拟的,所以Python是编写爬虫的首要语言。
互联网名词解释
域名与IP地址
域名就是IP地址的一种形象化的表达方式。比如 “www.baidu.com" 指的是域名,百度的IP地址是[115.239.210.27],一般是使用域名登录网站,容易记忆。
DNS(域名系统):用来把机器名字转换成IP地址。
IPv4长这样:192.168.1.1,255.255.255.255
IPv6长这样:2001:0DB8:02de:0000:0000:0000:0000:0e13
机器很喜欢这样的格式,换成二进制非常容易处理。但输入这么长串的IP地址非常不方便,因此需要域名来代替具体的某IP地址。但机器是不认识”www.baidu.com"这些字母组成的域名,这时候就需要DNS服务器将"www.baidu.com"域名转换成对应的IP地址。
全球有很多域名服务器,用来存储从域名到IP地址的映射。我们每台终端,无论手机还是电脑,在联网的时候都会配置一个DNS地址,就是DNS服务器的IP地址。你填的那个8.8.8.8就是google公司设立的DNS服务器。在上网的时候电脑会去向这些DNS服务器查询域名对应的IP。
Hosts是干什么用的
在互联网的早期,网络只有几台电脑。人们用hosts文件记录机器名字到IP的映射,后来网络的规模越来越大,hosts文件记录映射已经不可行了,所以发明了DNS,域名系统。但是hosts文件仍然保留在操作系统中,hosts文件的优先级高于DNS查询。操作系统首先会在hosts文件中找域名对应的IP地址,没有找到它才会去问DNS服务器。
VPN(虚拟专用网)
VPN的本意是在公用网络上建立专用网络。
设想你是一名公安民警,你出差在外住酒店,需要到公安内部网络查询某些资料。但是酒店的网络是公有网络,数据传输途中要经过酒店的路由,ISP的路由。中途任何有技术的人都可以看到你跟内部网络之间的明文通信。这时候需要在你和公安内部网络建立一条加密的专用信道。发送数据的时候加密,接收数据的时候解密,加解密的方式事先设定好。这样第三方看到加密过后的数据也无法理解其中的含义。
由于中国国情比较奇葩,发明了GFW(中国国家防火墙)这种东西,GFW是对中国政府在其管辖互联网内部建立的多套网络审查系统(包括相关行政审查系统)的称呼。
于此对应我们伟大的程序员发明了用VPN科学上谷歌的方法。如果你明文请求Google主机,GFW会直接重置连接。但是你在国外有个VPN代理服务器,代理服务器帮你请求Google;再把Google的响应用加密的方式转发给你。因为你跟VPN代理之间是加密传输,GFW不知道你访问的是Google,它不可能把所有发到国外的请求都重置掉,所以成功突破封锁。
CDN是内容分发网络
目的是让用户能够更快速的得到请求的数据。
- 由于跨地区、跨网络运营商访问网站会有明显的壁垒,访问速度很慢。为了解决这个问题,有些机构会在一些关键地区、机房设立代理服务器(也就结点),这些节点上会缓存网站的部分内容,当用户访问网站时,就近选择合适的结点,从何提高网站的访问速度。
- vpn和cdn都能对访问网站起到一定的加速作用。但vpn需要账号和密码,所以只用拥有账号和密码的用户才能使用,不是对所有访问网站的人都有加速作用;cdn是在各地设置结点,对绝大多数访问用户都有一定的加速作用。
服务器、虚拟空间、域名的关系
打个比方:服务器就是房子,虚拟空间是房子里的房间,域名是房间的门牌号。
服务器优点:功能全,权限更高,并且可以绑定无限个域名(创建多个文件夹绑定就行)。
服务器缺点:费用昂贵,复杂的环境安装调试,需要更多的专业知识。
虚拟空间优点:费用低,可直接使用无需维护,服务商更多。
虚拟空间缺点:安全性依赖空间提供商,无法设置多个空间环境,直接访问日志困难。
域名:选择一个靠谱的域名商家就好,比如阿里云、腾讯云、百度云、华为云等等。如果对价格敏感,可以选择一些小服务商。
虚拟主机、VPS、云服务器的区别
首先:虚拟主机 < VPS < 云服务器
一、云虚拟主机,也常常被称为“虚拟空间”、“空间”;
虚拟主机无需用户部署网站环境,通常默认支持多种建站环境,用户直接上传建站程序安装就可以使用。由于虚拟机空间不支持连接到桌面进行其他操作,所以一般服务器租用商都会提供一个控制面板,可以进行域名绑定、文件解压缩等简单操作。
二、VPS主机
VPS主机是通过使用VPS(Virtual Private Server 虚拟专用服务器)技术,将一部服务器分割成多个虚拟专享服务器的优质服务,也就是由一台真实主机虚拟成多个小主机。每个VPS都可分配独立公网IP地址、独立操作系统、独立空间、独立内存、独立CPU资源等,可以远程连接到桌面,相当于一台功能完整的电脑;用户除了可以自行分配多个虚拟主机及无限企业邮箱外,还可以根据需求自行更换操作系统、安装程序、部署环境以及重启服务器,也就是说VPS主机相对虚拟主机来说更高一级,自由度更高;
三、云服务器
云服务器利用的是更先进的集群技术,在一组集群服务器上虚拟出多个类似独立服务器的部分,集群中每个服务器上都有云服务器的一个镜像,从而大大提高了虚拟服务器的安全稳定性,除非所有的集群内服务器全部出现问题,云服务器才会无法访问。所以,云服务器相对于VPS主机来说又更高一个级别,稳定性、安全性更高。
物理服务器和云服务器的区别
物理服务器和云服务器都是用于存储、处理和传输数据的计算机系统,但它们在以下几个方面存在关键差异:
所有权和控制
- 物理服务器: 用户拥有和控制物理服务器,负责其硬件和软件维护。
- 云服务器: 云服务器由云服务商拥有和控制,用户租用云服务器的资源并获得有限的控制权。
部署和管理
- 物理服务器: 用户需要购买硬件、安装软件并配置物理服务器。 这可能需要大量时间、专业知识和资源。
- 云服务器: 云服务器由云服务商预先配置和管理,用户可以快速轻松地部署和启动云服务器。
可扩展性
- 物理服务器: 物理服务器的扩展需要购买额外的硬件,这可能很昂贵且耗时。
- 云服务器: 云服务器可以根据需求轻松扩展或缩减,用户只需支付所使用的资源。
成本
- 物理服务器: 物理服务器的前期成本可能很高,包括硬件、软件和维护费用。
- 云服务器: 云服务器通常采用按需付费模式,用户只需支付所使用的资源,前期成本低。
可靠性和安全性
- 物理服务器: 物理服务器的可靠性和安全性取决于用户的维护和配置。
- 云服务器: 云服务商通常提供冗余基础设施和高级安全措施来确保云服务器的可靠性和安全性。
适用场景
- 物理服务器: 物理服务器适用于需要完全控制硬件和软件、对数据安全性有高要求、需要高性能且对成本不敏感的场景。
- 云服务器: 云服务器适用于需要快速部署、易于扩展、成本可控且对安全性要求不高的场景,例如 Web 应用程序、数据库、大数据分析等。
总结
物理服务器和云服务器各有优缺点,选择哪种类型取决于您的具体需求和预算。
以下表格总结了物理服务器和云服务器的主要区别:
特性 | 物理服务器 | 云服务器 |
---|---|---|
所有权和控制 | 用户拥有和控制 | 云服务商拥有和控制 |
部署和管理 | 用户自行部署和管理 | 云服务商预先配置和管理 |
可扩展性 | 扩展需要购买额外硬件 | 可以根据需求轻松扩展或缩减 |
成本 | 前期成本高 | 前期成本低,按需付费 |
可靠性和安全性 | 取决于用户维护 | 云服务商提供冗余和安全措施 |
适用场景 | 需要完全控制、高安全性、高性能 | 快速部署、易于扩展、成本可控 |
公网IP和内网IP
公网IP是互联网上可公开路由的IP地址,可用于直接在互联网上识别和定位您的设备。它就像您房屋的邮寄地址,使互联网上的其他设备可以找到您的设备并与其通信。
内网IP是为连接到本地网络(例如家庭或办公网络)的设备分配的私有IP地址。内网IP地址不可用于直接在互联网上识别或定位设备。它们通常用于在本地网络上的设备之间进行通信。
公网IP和内网IP的比较
特性 | 公网IP | 内网IP |
---|---|---|
可路由性 | 可在互联网上公开路由 | 不可在互联网上公开路由 |
用途 | 识别和定位互联网上的设备; 例如运行服务器、托管网站等 |
在本地网络上识别和定位设备; 例如共享文件,打印等 |
分配 | 由互联网服务提供商 (ISP) 分配 | 由路由器分配 |
范围 | 全球唯一 | 局域网内唯一 |
对于没有公网IP的内网环境,通常有几种方法可以让外界访问内网中的服务:
- 端口映射(Port Forwarding) : 如果您拥有可管理的网络设备(如路由器),可以通过配置端口映射,将外部网络对特定端口的访问请求转发到内网中的某台设备的特定端口上。
- VPN(Virtual Private Network) : 通过VPN技术,可以在内网和外网之间建立一个加密的隧道,使得外网的用户可以安全地访问内网资源。
- 内网穿透 : 使用内网穿透工具,如NATAPP、花生壳等,可以将内网服务映射到公网上,从而实现外网访问。
- 反向代理 : 通过配置反向代理服务器(如Nginx),可以使得外网的请求通过代理服务器转发到内网的服务器上。
- DMZ(DeMilitarized Zone) : 在网络中设置DMZ区,将需要对外提供服务的服务器放置在DMZ区,这些服务器通常拥有公网IP,但与内网隔离,以提供一定程度的保护。
- 云服务 : 将应用部署到云服务平台,利用云服务提供的公网IP和负载均衡,可以方便地实现外网访问。
IPv4和IPv6的区别
IPv4是目前最广泛使用的互联网协议,但它正在被IPv6取代。IPv6是一种更新的协议,它可以提供更多的IP地址并解决IPv4的一些其他限制。
IPv4使用32位二进制数表示IP地址,这意味着最多可以有2^32(约43亿)个IP地址。然而,随着互联网设备数量的不断增长,IPv4地址已经变得非常稀缺。
IPv6使用128位二进制数表示IP地址,这意味着最多可以有2^128(约340万亿亿)个IP地址。这比IPv4提供的地址数量要多得多,应该足以满足未来几年的需求。
IPv4和IPv6的其他区别包括:
特性 | IPv4 | IPv6 |
---|---|---|
地址长度 | 32位 | 128位 |
可用地址数量 | 约43亿 | 约340万亿亿 |
地址表示法 | 点分十进制(例如192.168.1.1) | 十六进制(例如fe80::2000:0db8:85a3:0000:8a2e:0370:7334) |
头部格式 | 更简单 | 更复杂 |
安全性 | 更弱 | 更强 |
总体而言,IPv6是一种比IPv4更先进的协议。它提供更多的地址、更好的安全性和其他一些优势。然而,IPv4在短期内仍将继续使用,因为许多设备和网络都尚未升级到IPv6。
暗网领域
整个互联网可以划分为明网、深网和暗网三个类别:
明网(Surface Web),是指能被普通搜索引擎检索到的网络以及网站,约占整个互联网的4%。网站内容可以用普通搜索引擎(比如 Google、百度、搜狗)检索到的网站。我们的大部分上网时间,都是停留在明网上。
与明网相对的,被称为深网(Deep Web),是指内容不能被普通搜索引擎检索到的网络,约占整个互联网的 96%。深网里面的内容,需要账号密码、访问权限等才可以访问。比如说,我们邮箱里的内容,存储在云服务里面的内容,公司的数据库,学术论文数据库等等,都属于深网的范畴。我们的一部分上网时间,停留在深网上。
在深网这个大范畴下,还有一部分网络被称为暗网(Dark Web),需要通过特定的Tor浏览器 、特殊授权或者特殊设置、特殊软件才能链接上的网络,普通的浏览器和搜索引擎无法进入。
暗网的特点是经过加密,隐秘性极强,不易追踪到真实的地理位置和使用者的身份。这也导致了暗网上充斥着许多非法交易,比如贩卖JH、DP、SFZ护照等隐私数据信息等等。