01-前后端概念,php基本语法,前后端交互get&post

Ajax - 前后端的交互技术

服务器软件

使计算机具备提供某种服务能力的应用软件,称为服务器软件,
通过安装相应的服务软件,然后进行配置后就可以使计算具备了提供某种服务的能力。

常见的服务器软件: Apache服务器、Nginx 服务器、IIS服务器、Tomcat服务器、 Node服务器等;

web服务器

即(web服务器)网站服务器,主要提供文档(文本、图片、视频、音频)浏览服务,一般安装Apache、Nginx服务器软件。

服务器可以结合某一编程语言处理业务逻辑,由此进行的开发,通常称之为服务端开发

常见后台开发的编程语言有: php、java、.net、Python、Ruby、Perl。

客户端

具有向服务器索取服务能力的终端,叫做客户端。

  • 客户端:电脑、平板、手机安装了客户端软件,就可以称为客户端
  • 客户端:安装客户端软件,索取服务的计算机
  • 服务器:安装服务器软件,提供服务的计算机

客户端软件

对于前端工程师而言,主要接触到的客户端软件就是浏览器

以浏览器为宿主环境,结合 HTML、CSS、Javascript等技术,而进行的一系列开发,通常称之为前端开发

服务器与客户端的关系

在浏览器中展示的所有的资源, 都是存放在服务器中的, 当客户端向服务器发送请求后,服务器会将资源返回给浏览器进行渲染;

动态网页与静态网页

  • 静态网页:使用浏览器端语言进行编程,网站由静态代码(HTML.CSS,JS)组成。用户请求服务器上已经存在的页面,不需要进行业务逻辑的处理。 

  • 动态网站 :网页通过服务器的程序动态生成。用户可以和服务器进行交互(可以根据用户输入的不同信息,返回不同的运行结果),可以处理复杂的业务逻辑。

网络基础

ip地址

所谓IP地址就是给每个连接在互联网上的主机分配的一个32位地址。(就像每个人的身份证号码一样)

通过ip就可以找到具体的某一台计算机。

192.168.1.110

弊端:没有规律,不方便记忆和推广

查看本机IP地址 pingipconfig

两种特殊的IP地址:

127.0.0.1作为本地测试的IP地址。本机测试时,客户端与服务器都安装在本地计算机上,数据无需任何网络传输。

192.168开头为局域网的地址。

域名

由于IP地址基于数字,不方便记忆,于是便用域名来代替IP地址,域名是一个IP地址的“好记的名字”

查看域名对应的IP地址 ping

1
ping jd.com  // 可以获取到京东的ip

特殊的域名

localhost,意思为本地主机。这是一个保留域名,主要用于本地测试,对应IP地址为127.0.0.1

DNS服务器

DNS(Domain Name System)因特网上作为域名和IP地址相互映射的一个分布式数据库, 能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

简单的说就是用于记录IP地址和域名之间的对应关系。

查找优先级 本机hosts文件、DNS服务器

ipconfig /flushdns 刷新DNS

端口

端口号是计算机与外界通讯交流的出入口,每个端口对应不同的服务。

查看端口占用情况 netstat -an

常见端口号 80、3306、21

本地hosts

Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS域名解析服务器进行IP地址的解析。

hosts文件的地址:C:\Windows\System32\drivers\etc

1
2
//hosts文件内容
127.0.0.1 localhost

PHP基础

PHP简介

  • 开源(open source)软件,跨平台,常用操作系统稳定执行。Windows / Linux。做WEB开发的经典组合 WAMP,LAMP基本都是开源软件。

  • 入门简单,用户只需要关注应用,开发成本低。

  • 支持的大多数主流数据库。MySQL,oracle,Redis等

文件以.php后缀结尾,所有程序包含在<?php 这里是代码 ?>
避免使用中文目录和中文文件名

php页面无法直接打开需要运行在服务器环境当中

php初体验

1
2
3
4
<?php
//echo 相当于document.write
echo "hello world";
?>

输入中文乱码问题:如果使用echo输出中文,会乱码。

在php的语法中,末尾必须加分号,不然会报错(最后一行可以不加分号)

1
2
3
4
5
6
7
8
<?php
//content-Type:text/html;返回内容是一个HTML文档,这样设置后,就能识别HTML标签了。
//charset=utf-8 设置编码集
header("content-Type:text/html;charset=utf-8");
echo "hello world";
echo "<br/>";
echo "大家好;
?>

变量

php是一门弱类型语法,变量的类型可以随意改变。
变量其实就是存储数据的容器

变量的命名规则

1
2
3
4
5
// 1. 不需要关键字进行声明,变量在第一次赋值的时候被创建。
// 2. 必须以$符号开始
// 3. $后面的命名规则与js的变量命名规则一致。
$name = "hoho";
echo $name;

数据类型

简单数据类型

字符串

1
2
$str = "hoho";
echo $str;

整数

1
2
$num = 100;
echo $num;

浮点型

1
2
$float = 11.11;
echo $float;

布尔类型

1
2
3
4
5
6
$flag = true;
// 当布尔类型值为true时,输出1
echo $flag;
$flag = false;
// 当布尔类型为false时,输出空字符串
echo $flag;

字符串连接符

1
2
3
4
// 1. 在php中,+号只有算数的功能,并不能拼串
// 2. 在php中,拼串使用.
$name = "hoho";
echo "大家好,我是" . $name . ",今年18岁";

php中的单引号与双引号

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 1. 字符串的定义可以使用单引号,也可以使用双引号
$name = "hoho";
$desc = 'haha';
// 2. 双引号可以解析变量
// 3. 单引号的性能会高于双引号

echo $name;
echo $desc;

$str = '$name haha';// $name haha
echo $str;

$str = "$name haha";
echo $str;

数组

在php中,数组分为两种,索引数组和关联数组

计算数组长度的方法: count(数组名);

索引数组(类似与JS中的数组)

1
2
3
$arr = array("张飞","赵云","马超");
echo $arr;// echo只能打印基本数据类型
echo $arr[0];// 张飞

关联数组(类似与JS中的对象)

1
2
3
// 属性名必须用引号引起来
$arr = array("name"=>"zhangsan", "age"=>18);
echo $arr["name"];

输出语句

1
2
3
//1. echo 输出简单数据类型
//2. print_r 输出数据结构,一般用于输出复杂类型。
print_r($arr);// print_r是一个函数,不要忘记小括号

语句

判断语句

基本上,所有语言的if..else语法都是一样

1
2
3
4
5
6
$age = 17;
if ($age >= 18) {
echo "终于可以看电影了,嘿嘿嘿";
} else {
echo "哎,还是回家学习吧";
}

循环语句

遍历索引数组

1
2
3
4
5
6
$arr = array("张三", "李四", "王五", "赵六");
// 获取数组的长度: count($arr)
for($i = 0; $i < count($arr); $i++) {
echo $arr[$i];
echo "<br>";
}

遍历关联数组

1
2
3
4
5
6
7
8
9
//遍历关联数组
$arr = array(
"name"=>"zs",
"age"=>18,
"sex"=>20
);
foreach($arr as $key => $value) {
echo $key . "=" . $value . "<br>";
}

表单提交

表单(form):表单用于收集用户输入信息,并将数据提交给服务器。是一种常见的与服务端数据交互的一种方式

  1. action:指定表单的提交地址
  2. method:指定表单的提交方式,get/post,默认get
  3. input的数据想要提交到后台,必须指定name属性,后台通过name属性获取值
  4. 想要提交表单,不能使用input:button 必须使用input:submit

php获取表单数据

  • $_GET是PHP系统提供的一个超全局变量,是一个数组,里面存放了表单通过get方式提交的数据。
  • $_POST也是PHP系统提供的一个超全局变量,是一个数组,里面存放了表单通过post方式提交的数据。

get与post的区别

  1. get方式
    1.1 数据会拼接在url地址的后面?username=hcc&password=123456
    1.2 地址栏有长度限制,因此get方式提交数据大小不会超过4k
  2. post方式
    2.1 数据不会在url中显示,相比get方式,post更安全
    2.2 提交的数据没有大小限制

根据HTTP规范,GET用于信息获取,POST表示可能修改变服务器上的资源的请求