一、软件的基本架构:
两种类型的架构
1:cs (Client Server) 需要安装客户端软件
client :客户端。需要自己开发,直接是基于浏览器去做出来的界面。例如①qq,foxmail,迅雷,快播;
②bbs,门户,电商,社交网站
server:服务端。 也需要自己开发,需要安装客户端软件。首先需要有一台主机(电脑),操作系统 (linux ,windows),服务端的软件。
qq,foxMail,迅雷,qq影音,百度影音,快播都是客户端软件,这些软件都需要安装,操作系统 不一样,需要安装不同的版本开发比较麻烦,需要针对不同的用户的操作系统,都要进行开发, 升级比较麻烦。
2:bs (Browser Server) 客户端是直接通过浏览器
browser server 天天在使用。例如:淘宝,天猫,百度,京东。
bs 架构: ①:升级方便。
②:维护成本低,开发成本低。
③:bs 架构性能比较低,因为所有的东西都是从服务端加载过来,由浏览器完成渲染。
④:安全性比较低,比如写的html,css,js代码可以通过检查元素暴露给客户,被抄袭。
二、客户端与服务端
所有的软件都有一个客户端,一个服务端。
1、client 客户端
具有向服务器索取服务能力的终端称为客户端。如比如 手机、电脑等,通过安装不同的客户端软件,可以获取不同的服务,比如通过QQ获得即时通讯服务、通过迅雷获得下载服务等。
客户端包括两种:①客户端软件,app、qq、foxMail、迅雷、qq影音、百度影音、快播等。②以浏览器为宿主环境的客户端,结合HTML、CSS、Javascript等技术,而进行的一系列开发,通常称之为前端开发。就是说客户端是访问一个网址而来,是通过浏览器直接呈现出来的。
2、server 服务端
服务端:①需要安装一个服务器软件(apache的软件)
②写的网页必须放在服务器里面,才能被访问。而且服务器软件必须启动。
服务端说白了就是一台电脑,安装有服务器软件,从而提供一些服务,满足客户端的要求。
服务器是一个软件,装在一台计算机的系统里面,可以装多个软件,windows,linux必须安装一个服务器软件,电脑才能对外提供服务器功能。提供http服务就安装http服务器软件,提供web服务就安装web服务器软件。提供什么功能就安装什么服务器软件。
服务器一般有以下一些功能:①:接收用户请求。②:服务器对用户的请求进行处理。③:给用户一个响应。
服务器按照不同的划分标准,服务可划分为以下类型:
①、按服务类型可分为:文件服务器、数据库服务器、邮件服务器,Web 服务器等;
②、按操作系统可分为:Linux服务器、Windows服务器等;
③、按应用软件可分为 Apache服务器、Nginx 服务器、IIS服务器、Tomcat服务器、Node服务器等。
服务器软件:
使计算机具备提供某种服务能力的应用软件,称为服务器软件,通过安装相应的服务软件,然后进行配置后就可以使计算机具备了提供某种服务的能力。
常见的服务器软件有:
①、文件服务器:Server-U、FileZilla、VsFTP等;
②、数据库服务器:Oracle、MySQL、PostgreSQL、MSSQL、sqlserver等;
③、邮件服务器:Postfix、Sendmail等;
④、HTTP服务器:Apache、Nginx、IIS、Tomcat、NodeJS等;
Apache 使用量最大的一个web服务器软件。
http服务器:即网站服务器,主要提供文档(文本、图片、视频、音频)浏览服务,一般安装Apache、Nginx服务器软件。HTTP服务器可以结合某一编程语言处理业务逻辑,由此进行的开发,通常称之为服务端开发。
常见的运行在服务端的编程语言包括 PHP、Jsp、Asp、Python、Ruby、Perl等。
三、网络基础
IP地址就是给每个连接在互联网上的主机分配的一个32位地址。
有两种类型的ip:
内网ip:我们可以通过cmd进入到windows 的命令行。通过输入一个命令ping、ipconfig、ifconfig查看本机的ip, 假设我要检查我跟对方的网络是不是同的,我们可以使用ping 命令,例如ping www.baidu.com。
公网ip:我们是需要申请,电信,申请到一个公网ip,公网ip 在互联网上面是可以互通,武汉的人也可以访问我的这台电脑。
域名:由于IP地址基于数字,不方便记忆,于是便用域名来代替IP地址,域名是一个IP地址的“面具”。
查看域名对应的IP地址 ping。 ①com 商用或者组织 ② cn .china ③.net 网络 ④.gov 政府
早之前我们是没有域名,我要访问一个网站,我需要通过ip 去访问,ip 这个不太方便去记。我们使用域名替代。访问一个网站都是通过域名访问。例如访问百度,通过浏览器直接输入 www.baidu.com 。域名需要向万网申请。
DNS服务: Domain 域 Name名 System 系统
根据域名可以找到ip 地址,根据ip 可以找到一条主机。 域名和ip 之间一一对应。一个域名对应一个ip。
例如 http://www.baidu.com。根据这个百度域名找到一个公网的ip,根据ip 找到互联网上一台电脑,但这台电脑上面有可能有很多的服务,通过80端口找到apache 服务。
DNS记录了IP 地址和域名的映射(对应)关系;
查找优先级本机hosts文件、DNS服务器
比如我们访问http://www.baidu.com ,首先会到本机的操作系统hosts文件当中进行相应的查找(查找一个映射关系在这个下面去找一个映射关系:C:\Windows\System32\drivers\etc\hosts 文件这个hosts文件是系统的文件,如果我们要操作这个文件,我们获取权限。我们假设要修改这个文件,我们把这个文件拷贝到桌面上面,然后使用记事本打开然后再进行修改,修改之后,然后再放到C:\Windows\System32\drivers\etc目录下面去,然后把源文件覆盖。),如果找到了一个映射关系, 就不执行下面的操作了。如果没有找到,然后去dns 服务器去找.(在dns服务器里面首先进行域名解析,解析之后会得到一个ip 地址)。找到对应的ip 地址,根据ip 地址定位到互联网上面的主机,根据端口定位到服务。然后由主机完成响应,一般我们都是响应一个html 页面,浏览器得到这个页面,解析这个页面,然后一张网页就出现在我们的面前了。
端口:端口号是计算机与外界通讯交流的出口, 一个计算机有多个端口,每个端口对应不同的服务。一个软件要对外提供服务, 占用一个端口对外提供服务。如果这个端口被其他的软件占用了。就会有端口冲突。
现实生活中,银行不同的窗口办理不同的业务。
查看端口占用情况netstat-an
常见端口号80、8080、3306、21、22
四、资源
服务器上面存放的文件都理解为资源。比如我们的css,js,html,php。
资源分为两种:①静态资源:html,css,js ,这是一门在客户端运行的语言。浏览器只认识html,css,js。
②动态资源:如果客户端浏览器访问服务器上面的一个动态资源(可以写业务逻辑你,服务端语 言,php,jsp,asp),这个动态资源需要被服务器转换成静态资源。然后响应给客 户端浏览器。浏览器解析,我们就可以能够看到界面。
静态资源可以直接通过浏览器打开。动态资源就是php,jsp,asp,需要通过服务器转换。
js也可以写逻辑,但js写的逻辑是静态资源,在客户端浏览器执行。php写的是动态资源,而且能操作数据库,写的逻辑在服务器端运行。
五、wamp
Windows + Apache(80) + Mysql (3306)+ PHP(运行环境)
1、卸载wamp
①:进入到控制面板进行卸载
②:因为之前安装的时候在你本地的安装目录复制了一些文件,需要找到这些文件,删除这个文件夹。
netstat -ano 查看端口是否被占用。
2、访问本机的方法:①localhost②127.0.0.1③本机的ip地址
3、配置
⑴默认:不允许其他的主机访问的。在第235行添加 Allow from all
⑵设定根目录,查找并修改(默认地178行) DocumentRoot " "
网站部署:需要把我的项目部署到我们的服务器上面去。
默认是安装目录的c:\wamp\www\
做一个环境的集成:
我现在假设我要开发网页,我使用的webStorm,开发好的网页都保存在 webstorm 定义的工作空间里面。我开发好了之后,我需要把我开发好的网站拷贝到c:\wamp\www\ 目录下面去,然后去进行测试。
c:\wamp\www\ 是默认的部署位置,我默认需要把我开发好的网页往这个路径下面拷贝,这个时候我们可以进行更改。更改到跟webStorm 的工作空间保持一致,我开发好了之后就能自动部署。
⑶配置根目录,查找 205行 <Directory "">
4、配置虚拟主机
具体步骤如下:
⑴、开启虚拟主机辅配置,在httpd.conf 中找到 第467行
# Virtual hosts #Include conf/extra/httpd-vhosts.conf
去掉前面的#号注释,开启虚拟主机配置
⑵、配置虚拟主机,打开conf/extra/httpd-vhosts.conf
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "c:/Apache2/docs/dummy-host.example.com" ServerName dummy-host.example.com ServerAlias www.dummy-host.example.com ErrorLog "logs/dummy-host.example.com-error.log" CustomLog "logs/dummy-host.example.com-access.log" common </VirtualHost>
分别修改以下三项
DocumentRoot "E:/www/example"
ServerName "example.com "
erverAlias"www.example.com"
其它项无需指定。
⑶ 、修改DNS(hosts)文件
打开C:\Windows\System32\drivers\etc\hosts
目录是固定的 假设访问www.jd.com
127.0.0.1 jd.com
127.0.0.1 www.jd.com
注:修改hosts文件权限
⑷、重启Apache
⑸、浏览器访问www.jd.com