1、http协议
http请求分三部分
1、请求头
get:
uri:请求的文件名
协议级版本号:
2、报头
host:主机名
connect:保持连接
user-agent:浏览器的相关信息,自动携带给服务器,放在$_server里
Accept:浏览器所能处理的数据的格式
Accept-Encoding:浏览器所支持的压缩格式
Accept-language:浏览器所支持的语言
if-modify-Since:缓冲信息
3响应头
响应行
协议及版本哈
状态码
状态秒速
常见的状态码
200
404
403:无权限
响应报头
date
server
last_modified:与客户端请求头中的last-modified-since对应text/thml
content-type:响应的数据是什么格式,默认多是text/html,
2、http操作响应头
1、设置浏览器的显示编码
header(“content-type:text/html; charset=utf-8”)
2、用于跳转
header(网址)
3、下载
header(“content-disposition:attachmentlfilename=xxxx”)
3、数据采集
1、curl()函数,是一个代码版的浏览器,允许我们在代码中浏览别人的网站。
开启curl()支持需要再php.ini中打开
extension=curl
如果还不能打开,建议参考网络资源
4、curl基本步骤
- 1、初始化curl(打开一个浏览器)
curl_init();
初始化curl工具,返回一个资源类型
- 2、设置curl选项(输入地址)
curl_setopt(curl,参数名,参数值
curl:curl_init的返回值
参数名:常量形式的参数名 CURLOPT_URL
参数值:具体的值
- 3、执行curl(回车)
curl_exec(curl资源)
案例如下:
$mycurl=curl_init();
curl_setopt($mycurl,CURLOPT_URL, "http://www.baidu.com");
curl_exec($mycurl);
5、模拟get请求
CURLOPT_ETURNTRANSFER:取值如果是 1,表示不讲接收到的数据直接返回给浏览器,而是作为curl_exec()函数的返回值
$mycurl=curl_init();
curl_setopt($mycurl,CURLOPT_URL, "http://www.baidu.com");
curl_setopt($mycurl,CURLOPT_ETURNTRANSFER,1);
curl_exec($mycurl);
5、模拟post请求
CURLOP_POST 取值为1
CURLOPT_POSTFIELDS :用于设置post请求所携带的数据
$mycurl=curl_init();
curl_setopt($mycurl,CURLOPT_URL, "http://www.baidu.com");
curl_setopt($mycurl,CURLOPT_ETURNTRANSFER,1);
//设置POST请求方式
curl_setopt($mycurl,CURLOPT_POST,1);
//定义数据
$data=['n_title'=>'^_^','c_id'=>10,'n_sort'=>100];
//模拟提交数据
curl_setopt($mycurl,CURLOPT_POSTFIELDS,$data);
//执行curl
curl_exec($mycurl);
6、会话技术–cookie
回话技术使得服务器可以记录客户端的信息
cookie核心是关联数组,用来保持客户端信息
header('cookie:id=10');
header('set-cookie:id=40');
setcookie("name","zhangsan");
6、setcookie()设置cookie
格式见php手册
setcookie(“name”,值,有效时间,路径,域)
name:cookie名
value:cookie值
7、读取cookie
- 1、$_COOKIE,
$_COOKIE是一个关联数组,主要用于存储客户端通过cookie保存的数据
print_r($_COOKIE);
``
get
post
request
cookie
```php
print_r($_COOKIE);
- 2、cookie的有效时间
expire:从1970年的时间点开始的,时间以秒记录,有效期的起点是时间原点。如果省略表示回话cookie,有效期到浏览器关闭
setcookie("address","beijing",time()+3600)
- 3、cookie的路径
“/”:整站有效
cookie也有自己的路径,默认不设置路径,则默认为php文件的路径,如果需要更改,则使用第四个参数path
-
4、cookie的域(名)
cookie实现的跨域,只能是二级域名的跨域 -
5、secure
取值为true或false
ture:客户端协议是https是,才将cookie携带给服务器 -
6、httpony
取值为ture户false
ture:只能有php访问cookie,js不能
8、删除cookie
将cookie的有效期设置为过期(负值),或者将cookie的值设置为kong‘’;
9、session技术
session也是会话的一种,seession主要保存在服务器端
10、session_start()开启session
seession对应$_SESSION
session_start():开启session
11、设置session
操作session就是向$_SSESION这个变量读写数据(读写数组)
$_SSESION["balance"]=1000;
操作session实际是就是操作$_SESSION和session文件之间的交互过程
首次访问:
请求时,服务器在硬盘中创建一个唯一文件,将文件名以cookie的形式传给客户端,在php脚本执行结束时,将内存中的 $_SESSION写入到session文件中
其后各次:
请求时,服务器会收到客户端的cookie中保存的session文件名,同时会在服务器找到对应的session文件,并将其读到 $_SESSION中。
脚本结束后,再将 $_SESSION写入大文件中去
12、通过session_id()读取session
session_id():用户获取当前session的id值
session_start();
echo session_id();
13、session的数据
session可以存储任何数据,但其下标必须是字符串,因为其是数组,是关联数组,而不是数字
14、销毁session
session_destory():销毁session数据文件
session_start();
session_destory():
15、unset()删除session的一部分数据,
相当于删除数组中的一个元素
session_start();
$_SESSION["name"]="zhangsan";
unset($_SESSION[下标])
16、session分目录存储,
在php.ini文件中设置,略
17、session垃圾回收机制
session也可以设置有效期,同样在php.ini文件中设置,略