k8s集群
- http协议,超文本传输协议
- 工作在tcp/ip协议基础上
- web开发数据的传输都是依赖http协议
- 通过httpwatch插件来抓取http请求
- http1.0 短连接 //接受完信息就断开
- http1.1 长连接 //不会马上断开,有超时限制
###http请求(request)
@(学习笔记)
####1. 基本结构
请求行
消息头
消息体
例子:
1 | GET /test/hello.html HTTP/1.1 //请求行,表示是GET请求,请求资源是/test/hello.html |
1. HTTP请求方式
POST,GET,HEAD,OPTIONS,DELETE,TRACE,PUT (常会用的是GET,POST)
2. GET与POST的区别
1) 安全性,GET请求的数据会显示在地址栏,POST请求的数据放在HTTP协议消息体里面
2) 从可以提交的数据大小看,
1. HTTP协议本身并没有限制数据大小
2. 浏览器在对GET和POST请求做限制,GET请求数据2K+35,POST没有限制
3) GET请求可以更好的添加到收藏夹
3. 防盗链
1 | if(strpos($_SERVER['HTTP_REFERER'],"http:localhost")==0){ |
4. 页面跳转
header(“Location: b.php”); //会向客户端发送一个302状态码,告诉浏览器重新访问b.php。header可以向http响应头写入信息
##HTTP响应
###1.基本结构
*状态行
*消息头
*实体信息
例子:
1 | HTTP/1.1 200 OK |
状态码说明:
- 100-199 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程
- 200-299 表示成功接收请求并已完成整个处理过程,常用200
- 300-399 为完成请求,客户端需进一步细化请求,请求的资源已经移动到一个新的地方,常用302 304
- 400-499 客户端请求有错误,常用404
- 500-599 服务器端出现错误,常用505
细节注意:
- 302状态码也可以跳转到外网
header(“Location: http:www.baidu.com“); - 404状态码 //请求不存在
- 304状态码 //服务器返回304表示资源未修改过
比较详细HTTP响应头:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16Location: http://baidu.com/index.php
Server:apache
Contnet-Encoding:gzip //内容编码,支持gzip压缩算法
Content-Length:80 //返回数据大小
Content-Language:zh-cn
Content-Type:text/html;charser=GB2312 //返回内容类型
Last-Modified: Tue,11 Jul 2000 18:23:51 GMT //请求页面或图片最近更新的时间
Refresh: 1;url=http://www.baidu.com
Content-Disposition: attachment,filename=aaa.zip
Transfer-Encoding: chunked
Ser-Cookie:SS=5Lb_nQ.path=/search
Expires: -1
Cache-Control: no-cache
Pragma: no-cache
Connection: close/Keep-Alive
Date: Tue,11 Jul 2000 18:23:51 GMT
###2.通过HTTP响应,控制浏览器间隔时间跳转header("Refresh: 3; url=http:www.xtwind.com");
###3.通过HTTP响应,控制浏览器缓存(需要三句来控制主要是为了兼容多个浏览器)
1 | //通过header来禁用缓存(ajax特别注意需要禁用缓存) |
###4.通过HTTP响应,控制文件下载
- header(“content-type:image/png”);
- heade(“content-disposition:attachment;filename=a.txt”); //filename下载的时候文件名
3.`header(“content-length:30kb”); //下载的时候显示的文件大小
4.header(“Accept-Ranges: bytes”); //无所谓有无,返回文件大小类型 - readfile(‘a.txt’); //以附件的形式来读出文件
例子:1
2
3
4$file_name="Sunset.jpg";
filesize() //获取文件大小
feof() //判断文件指针是否到了文件结尾
fread() //读取文件内容 - 打开文件2.如果文件是中文名(会提示文件不存在)
1
2
3
4
5
6
7
8
9
10
11
12
13
14$file_name="Sunset.jpg";
$fp = fopen($file_name,"r");
header("content-type:image/png");
heade("content-disposition:attachment;filename=a.txt");
header("content-length:30kb");
header("Accept-Ranges: bytes");
$buffer = 1024;
$file_count = 0;
while(!feof($fp) && ($file_size-$fize_count)>0){
$file_Data=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_Data;
}
fclose($fp);
原因:php文件系列函数比较老,需要对中文转码,转为gb2312,使用icovn()函数处理文件名
iconv(“utf-8”,”gb2312”,$file_name);