Ajax

后端 ————>>>>>一种方式
服务器定义:提供服务的机器

服务器类型

服务类型:文件服务器 /数据库服务器.邮件服务器.web服务器

操作系统:Linux服务器/windows服务器

应用软件:Apache服务器/Nginx服务器/IIS服务器/Tomcat服务器/Node服务器等

服务器软件

  • 文件服务器(安装软件,计算机通过这些软件提供上传下载)

    Server-U/FileZilla/VsFTP

  • 数据库服务器

必须安装一些软件,次计算机通过这些软件来提供服务

MySQL/MSSQL

  • HTTP服务器(网站)

网页—通过软件—服务器

Apache(阿帕奇服务器).Nginx(PHP/负载平衡),IIS(windows系统自带),Tomcat(JAVA用的服务器),NodeJS

搭建HTTP服务器步骤:

1.安装apache软件

2.服务端的语言 php

3.数据库 Mysqll

客户端

定义:向服务器索取服务能力的终端

前端开发以浏览器为宿主环境

网络基础

HTTP服务器:

1.Ip地址

处于网络环境中,计算机就会自动分配一个Ip地址(唯一)

查看本机ip地址:ping ipconfig ifconfig(Linux)\

2.域名

Ip地址的面具

查看域名对应的I地址

3.DNS服务

DNS记录了IP 地址和域名的映射(对应)关系;

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

4.端口

一台计算机提供多种服务

查看端口占用情况:netstat-an

80(apache)

3306(Mysql)

集成环境

wampserver 127.0.0.1/xiu/

对服务器软件进行简单的配置

1,放置网页文件的目录,需要配置目录的访问权限

2.配置域名

3,配置虚拟主机

1.修改文件存放路径

修改配置文件 conf—->>httpd.conf里面的

1.DocumentRoot 修改文件上传路径 234#

2.DirectoryRoot(访问权限)—->修改为与上面路径一致

DNS查找规则

当浏览器中输入一个域名后,操作系统会自动去查找此域名对应的IP地址,但是遵循如下查找规则,先查找当前计算机上的hosts文件,如果在此文件中查找到了则使用hosts下的结果,如果查找不到,再去查找DNS服务器

PHP

表单

前端:
<form action="./login.php" method="">
//action属性用来指定后端处理程序 ,默认为当前页面
//method属性用来指定数据的提交方式 可以是get/post方式
input标签里面必须有name值,表单name属性的是用来提供给服务端接收所传递数据而设置的


注意:复选项name值后面跟"[]" ,服务端接受的结果会放到同一个数组中
    表单提交的时候.提交的是表单里面的value属性值

后端:
当上传文件是需要设置 enctype="multipart/form-data",且只能post方式
$_GET接收 get方式的 传值
$_POST接收 post方式的 传值
$_FILES接收文件上传
通过系统函数move_uploaded_file,将上传的文件从临时目录中移走

常用的PHP函数

in_array() 是否在数组中

count() 计算数组长度

array_key_exists ()检测数组中是否存在key

file_get_contents读取文件

…还有很多

客户端+服务端

HTTP协议组成

客户端发出的请求

服务端做出的回应

请求和响应有三部分组成

请求:

(地址栏输入一个地址/form/src/href都可以发出请求)

  • 请求行/请求头/请求主体
    请求行: 请求方式+请求地址
    请求主体:即提交的数据
    注意:get方式请求主体为空

响应:

  • 状态行/响应头/响应主体
    状态行:由状态码+状态信息
    响应主体:即服务器返回的内容

Ajax开讲

 /* code review 代码审查
    XMLHttpRequest是javascript的一个内置对象
    向服务器发送异步请求 ,可以实现页面的局部刷新*/
    var xhr=new XMLHttpRequest;
//    请求行
    xhr.open('get','demo.php');
//    请求头 ,可以设置多个请求头
//    作用:浏览器向服务器汇报情况
//    只需要执行多次即可.一般只需要设置Content-Type即可
    xhr.setRequestHeader('Content-Type','text/html');
//                                key         value
//    发送
    xhr.send();
    xhr.onreadystatechange=function(){
//        响应不是立即返回的
       /* 通过一个事件监听,一旦响应发生改变,变化出发这个事件
        在发生改变的时候会有一个状态值(2,3,4)
        其中4代表响应结束,此时处理相应结果 最有意义*/
        if(xhr.readyState==4&&xhr.status==200){
//            xhr.responseText响应主体
            console.log(xhr.responseText);
//            状态信息
            console.log(xhr.statusText);
//            获取所有的相应头
            console.log(xhr.getAllResponseHeaders);
//           获取指定头信息
            xhr.getResponseHeader('X-Powered-By');

            xhr.getResponseHeader('key');
        }
    }

XML(了解)

xml和html的区别是什么呢?

    • xml是存储数据的,并且浏览器有能力解析XML
    • html是展示数据的
      那么它的语法规则是什么呢?
      必须要有一个根元素

工作原理

服务器返回XML给浏览器可以解决复杂数据传输问题

后端语言链接数据库并将需要的数据取出来,转换为xml格式

返回给apache  apache再发送给浏览器

如果服务端返回的是一个xml数据,通过xhr.responseXML得到一个dom,便可以提取xml文档中的数据

ctrl+shiift+delete

JSON

eval能将json字符串转换为对象,处理兼容问题

jquery中的ajax

jquery详细配置

$.ajax({}); //可以发送一个异步请求

ajax方法可以传递一个对象参数,对象参数包括若干属性

dataType:’json’

用来约束服务器的返回类型,与响应头里的Content-Type相对应

beforeSend:function(){ //一般用于数据验证

在请求发出前调用次函数,这个函数有一个返回值,如果返回值为return false,则请求停止

}

errot:function(a,b){//当请求(逻辑)失败时,调用此函数}

同源 跨域

安全策略:

浏览器出于安全考虑对请求作出限制

如果非要获取与当前网页域名/协议.端口不同的网站数据,则会跨域

与跨域相对的还有一个名称叫同源

注意:即使跨域,浏览器也是发出请求了,并且服务器作出了响应.

解决跨域:

通过服务器去访问另外一台服务器

1.标签的src和href属性是可以跨域访问的

2.利用src或者href的特点来实现跨域数据的访问

jQuery中使用JSONP

1.jQurey使用$.ajax方法来实现JSONP

2.通过url属性设置JSONP的请求地址

3.无需设置请求方式(JSONP原理是通过src属性发起的请求)

4.在发起请求时,,可以使用data来设置请求参数

5.非常必要的一步,必须设置dataType:’jsonP’

dataType是jQuery内部判断
jsonP是不支持post的

6.通过success得到服务端的响应结果

跨域资源共享

跨域访问数据不可避免,新版本的http制定规则

设置一个响应头可以告知浏览器是不是有必要限制跨域访问

知识点

1.MIME是标识文件类型的,文件后缀并不能正确无误的标识文件的类型。

客户端与服务器在进行数据传输的时候都是以字节形式进行的,咱们可以理解成是以“文本形式”传输,这时浏览器就需要明确知道该怎么样来解析这些文本形式的数据,MIME就是明确告知浏览器该如何来处理。

2.在Javascript中有一个函数叫 eval ,它可以将一个字符串按着 Javascript 的语法进行解析