js学习笔记----ajax学习day01网络请求

php编辑软件

mac端用mamp服务器

1. wampServer调试和使用:

修改端口

2. php文件夹里不能有中文. 否则路径中会有中文, 无法解析

3. 忘了...

4. php语句必须要加上分号

5. 打印


print_r  //打印数组和对象的内容

基本数据类型/ 复杂数据类型

"" 括住的变量, 可以打印变量的值

'' 括住的变量, 不能打印变量的值, 所括即所得

数组

1. 索引数组

2. 关联数组 --- (对象)

http协议

js学习笔记----ajax学习day01网络请求_第1张图片
TCP协议簇
  • 协议: 大公司会自己写协议

  • 三次握手 : 客户端与服务器之间建立连接的过程

  • http2.0 性能得到了大幅度的提升

请求和响应模式

js学习笔记----ajax学习day01网络请求_第2张图片
客户端发送请求的过程

js学习笔记----ajax学习day01网络请求_第3张图片
请求和响应模式简易图
网络请求原理
  • 请求头部: 1. 请求行(请求的方法和协议) 2. 请求头 请求的描述(q=0.9优先级: 按优先级返回数据)

  • 请求主体

  • 响应头部: 1. 状态行 2. 响应头

  • 响应主体

网络请求demo
  • 参数在提交时使用键值对格式. key值是以后台给的文档命名用name参数表示, value就是输入框的内容

注意点:

1. 默认为get请求

  • get/post请求的对比

1. 表面上的区别 参数的处理方式: get方法的参数在url后, post在请求体里

get请求有限制: 地址栏里参数和数据大小有限制 < 2kb

推荐书籍: http权威指南

网络安全

  • 根本原因: HTTP是明文传输

逆向: 本地的破解

  • 数据的安全问题

1. 窃听

2. 数据的篡改

3. 数据的伪装

  • 处理方式:

1. 加壳(内部) : 对数据进行加密

2. 加壳(外部) : 对http协议加密 https

练习: 使用表单进行文件上传

注意点:

1. 请求路径

2. 请求方法 只能用post

3. 参数(可省略)

4. 如果是文件上传需要加参数enctype

5. 文件需要剪切操作来保存

返回的对象解析:

name :

type : MIMETYPE

tmp_name : 文件上传的服务器之后的临时路径 (易被删除, 所以需要保存文件) 用sleep(3); //线程休眠方法来证明

error : 0 无错误

size : 文件的大小

保存文件的方式

=> 对文件进行剪切操作

大文件上传配置文件及参数 => php.ini文件

响应状态码

  • 表明当前网络请求的状态

200 ok 成功

404 not found 资源错误

几个概念 :

1. 接口文档 : 后台提供 eg. 淘宝开发平台

2. 需求文档 : 后台开发

3. 切图, 高保真图片 : UI

4. 软件测试

5. 调试接口 : 根据接口文档的说明, 发送网络请求, 测试/调试接口是否可用

  • 如果失败, 借助响应状态码定位问题;

1. 客户端问题 (参数不正确(少 多 类型); ) | 请求路径不正确 | 请求方式不正确

2. 服务器端问题 (宕机 | 逻辑问题)

响应状态码 : 数字 + 短语


js学习笔记----ajax学习day01网络请求_第4张图片
响应状态码

常见 : 404请求路径问题

!!!! Ajax发送网络请求 Async javascript and XML

特点: 异步 不需要刷新整个页面

优缺点:


js学习笔记----ajax学习day01网络请求_第5张图片
ajax优缺点

任务的执行方式 :

1. 同步执行 : 任务一个一个执行 (eg. js是单线程)

2. 异步执行: 多个任务可以同时执行 性能好, 花时间少

get请求基本过程

1. 获取按钮, 添加点击事件

2. 发送get请求

1. 创建请求对象 用new创建请求对象

var xhr = new XMLHttpRequest();

2. 设置(请求方法 | 请求路径 | 是否异步)

xhr.open("GET","php/04-ajax_GET.php",true);

3. 发送网络请求

xhr.send();

4. 监听网络请求的状态

xhr.onreadystatechange = function(){

 //当网络请求的状态发生改变(无论成功与否, 都会调用这个方法), 就会执行这里的代码

    xhr.readyState.log // 拿到状态码

};
js学习笔记----ajax学习day01网络请求_第6张图片
onreadystatechange的几种状态

5. 解析返回数据

//需先过滤成功或者失败
if(xhr.readyState == 4)
{
    console.log("获取到服务器返回的响应");
    //[5] 解析服务器返回数据
    if(xhr.status == 200)
    {
        console.log("请求成功" + xhr.responseText);
    }else
    {
        console.log("请求失败" + xhr.status);
    }
}

get请求兼容处理

支持IE5,IE6

if(window.XMLHttpRequest)
{
    xhr = new XMLHttpRequest();
}else
{
    //支持IE5?IE6
    xhr = new ActiveXObject("Microsoft.XMLHTTP")
}

get请求参数处理

xhr.open("GET","php/04-ajax_GET.php?username=zhangsan&password=123456",true);

你可能感兴趣的:(js学习笔记----ajax学习day01网络请求)