php编辑软件
mac端用mamp服务器
1. wampServer调试和使用:
修改端口
2. php文件夹里不能有中文. 否则路径中会有中文, 无法解析
3. 忘了...
4. php语句必须要加上分号
5. 打印
print_r //打印数组和对象的内容
基本数据类型/ 复杂数据类型
"" 括住的变量, 可以打印变量的值
'' 括住的变量, 不能打印变量的值, 所括即所得
数组
1. 索引数组
2. 关联数组 --- (对象)
http协议
TCP协议簇-
协议: 大公司会自己写协议
-
三次握手 : 客户端与服务器之间建立连接的过程
-
http2.0 性能得到了大幅度的提升
请求和响应模式
客户端发送请求的过程请求和响应模式简易图
网络请求原理
-
请求头部: 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. 服务器端问题 (宕机 | 逻辑问题)
响应状态码 : 数字 + 短语
响应状态码
常见 : 404请求路径问题
!!!! Ajax发送网络请求 Async javascript and XML
特点: 异步 不需要刷新整个页面
优缺点:
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 // 拿到状态码
};
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);
网友评论