一、服务器
1.能够提供某种服务的机器(计算机)称为服务器。
2.服务器类型
- 服务类型:文件服务器(eg歌、电影)、数据库服务器、邮件服务器、Web服务器等
- 操作系统:Linux服务器、Windows服务器、Unix系统等
- 应用软件:Apache服务器、Nginx服务器、IIS服务器、Tomcat服务器、Node服务器等
3.服务器软件
- 使计算机具备提供某种服务能力的应用软件,称为服务器软件。
- 通过安装相应的服务软件,然后进行配置后才能使计算机具有了提供相应服务的能力
- 服务器软件
- 文件服务器:Server-U、FileZilla、VsFTP等
- 数据库服务器:Oracle、MySQL、PostgreSQL、MSSQL、DB2
- 邮件服务器:Postfix、Sendmail
- HTTP服务器:Apache、Nginx、IIS(微软操作系统自带)、Tomcat、NodeJS等
- 面试时
- 用的是Linux(比较安全,80%使用这个)或者Apache
- 用的是Apache服务器软件(60%使用的是这个)
- 数据库一般用的是MySQL(比较小,轻量,免费开源,性能不差,淘宝也是用的MySQL,淘宝自己加工了使用)
二、客户端
- 具有向服务器索取服务能力的终端,如手机、电脑等
- 常见客户端软件:QQ、迅雷、浏览器、Foxmail等
- 以浏览器为宿主环境,结合HTML、CSS、Javascript等技术,而进行的一系列开发,通常称之为前端开发
- 前台和后台是针对网站的性质来划分的,前端和后端是针对职位技术来划分的
三、HTTP服务器
- 即网站服务器,主要提供文档(文本、图片、视频、音频)浏览服务
- HTTP服务器可以结合某一编程语言处理业务逻辑,由此进行的开发,通常称之为服务器开发
- 常见的服务端编程语言包括PHP、Jsp、Asp、Python、Ruby、Perl
四、网络基础
- IP地址
- 由路由器分配
- Ping、ipconfig(windows的命令)、ifconfig(Linux的命令)
- 如果输入IP地址,网页提示501,原因是服务器做了限制,无法通过IP地址访问该网站
- 域名
- 查看域名对应的iP地址ping、tracert
- DNS服务
- Domain Name System
- DNS记录了IP地址和域名的映射(对应)关系
- 查找优先级 本机 hosts文件、DNS服务器
- 端口
- 端口号是计算机与外界的通讯交流的出口,每个端口对应不同的服务
- 查看端口占用情况netstat-an
- 虚拟端口,不同的端口处理不同的服务
- 步骤
- 服务端
- 安装操作系统 Linux Windows
- 安装服务器软件
- 后端开发语言
- 当这台电脑作为HTTP服务器的时候,需要安装Apache,并且会监听80端口,当这台电脑作为数据库服务器,需要安装MySQL并且它监听3306
- 客户端
- 有可能需要安装操作系统,一般是windows
- 安装一些具备索取服务能力的软件比如QQ、浏览器
- DNS服务器
五、C/S&B/S
- C/S client、server
- 在C/S结构的情况下,不同的服务需要安装不同的客户端软件
- B/S browser server(是一个特殊的C/S)
- 所有的服务都可以通过浏览器来完成(因为基本所有的浏览都安装了浏览器)
- 缺点:操作稳定性、流畅度方面相对较弱
六、搭建HTTP服务
- 配置虚拟主机
- 注意
- 检查网络是不是通的 ping对方iP
- 检查防火墙是否开启,如果开启不能正常被访问
- 检查访问权限Allow from all
- 理解默认索引(index.html)
- 确保端口没有被其它程序占用
- “#”表示注释
- 修改配置要格外小心,禁止无意修改其它内容
- 配置根目录
- Localhost默认代替的是路径,根目录
- 为何要配置?
- 安装完成后会默认给我们设置一个根目录,和实际放置的目录不在一起
- 修改httpd.conf中的documentRoot 和205 中的directory中的路径
- Ctrl+F5强制刷新
- 实现以域名的形式来访问
- 236 196 allow from all
- 查找vhosts(467行),去掉“#”号(注释),开启虚拟主机配置
- Wamp-bin-apache-Apache2.2.21-conf-extra-http-vhosts.conf
- 提供了两个配置文档,虚拟主机,复制第一个VirtralHost
- 在httpd.conf DirectoryIndex 优先级 如果文件名都没有,就展示列表
七、PHP基础
- 入门
- 文件以.php后缀结尾,所有程序包含在<?php/这里是代码/?>
- 禁止使用中文目录和中文文件名
- 变量
- 变量以$开头 字母、数字、下划线 不能以数字开头
- 大小写敏感(区分大小写)
- SS+对应对的语言,快速设置sublime语言
- 指定编码集 header('Content-type:text/html;charset=utf-8')
- echo是用来输出简单类型的变量
- 数组
- $arr=array(1,2,3); 定义数组方式称为索引数组
- 关联数组
- print_r
- 小注意
- header()要放在最前面,放后面可能回出现一些错误
- 不要使用中文(中国字、中文字符)——禁用输入法的中文字符
- 不要使用sublime或者webstorm来运行php文件
- Php中不能省略分号
- 文件名不能用中文
- 内容输出(隐式转换)
- echo 输出简单数据类型,如字符串、数值
- echo false相当于输出一个空字符串
- echo true 输出1
- echo null 不会输出任何东西
- print_r() 输出复杂数据类型,如数组
- var_dump() 输出详细信息,如对象、数组
- int整型
- 连接符
//PHP中,+加号不能用作连接符
$num='10';
$num2=5;
echo $num+$num2;
//PHP连接符用 .
$hello='hello';
$world=' world';
echo $hello.$world;
- 函数
- 函数名对大小写不敏感
- 没有传参数会报错
- 解决:PHP可以指定一个默认参数
function sayHello1($name='itcast'){}
- 分支、循环语句
- 循环语句
$arr =array('我','是','男','的');
//count 用来计算数组长度
$len = count($arr);
for($i=0; $i<$len;$i++){
echo $arr[$i];
}
- if语句
$num =18;
if($num <= 16) {
echo '年纪太小';
}else {
echo '来干活吧!';
}
- Count用来计算数组长度
- 关联数组通过foreach()来遍历
$arr = array('name'=>'itcast','age'=>10);
foreach($arr as $key=>$value){
echo $arr[$key];
}
- Foreach既可以遍历索引数组也可以遍历关联数组
- echo $val;也可以遍历数组
八、 PHP和HTML混合输出
- Echo的内容就是浏览器得到的内容
- 一次性给了浏览器,拼接成HTML
- 理解混合使用PHP和 HTML
- 访问过程中apache把php文件交给php解析程序(bin——php)
- Php解析程序将读取里面的内容,按照php的语法解析并输出,遇到结束标签完成,没有php文件了,php标签的html标签就按照原样输出
- 搜索:xss反攻击
九、动态网站
- 数据是从数据库中取出的
- 将数据转换成一个数组或对象
- 通过遍历数组,将数据显示到页面
- 服务器执行php,php执行完毕的结果发送给浏览器
- 浏览器访问