http协议
①http协议是建立在tcp/ip协议的基础之上的
②http1.0为短链接(一连通就挂掉),http1.1为长连接(有默认超时时间)------现在多采用http1.1协议
③get请求
Accept:*/* 表示客户端可以接受任何数据
Referer:http://localhost:80/test/abc.html 表示我是从哪来的
Acceot-Language:zh-cn 页面语言
User-Agent:Mozilla/4.0 告诉服务我的浏览器的内核,操作系统
Accept-Encoding:gzip,deflate 表示接受什么样的数据压缩格式
Host:localhost:80 主机端口
Connection:Keep-Alive 表示不要断掉我们的请求
在服务器端,我们可以通过预定义的数组$_sSERVER来获取我们需要的信息
重要的有:
HTTP_HOST
REMOTE_ADDR 访问该页面的ip
DOCUMENT_ROOT 可以获取apache的主目录
REQUEST_URL 可以获取请求的资源名
④http请求有两种主要的方式
Get/post区别:1.安全性post较高
2.浏览器对post提交的数据量没有限制
服务器响应
HTTP/1.1 200() OK 200 ok说明客户端请求成功了
Server:Microsoft-IIS/5.0 表示告诉浏览器服务器的情况
Date:Thu,13Jul 2000 05:46:53 GMT 告诉浏览器请求页面的时间
Content-Length:2291 服务器响应的数据量
Content-Type:text/html 文档类型
Cache-control:private 缓存
Header(locaction:a.php)功能就是改变服务器发送浏览器的状态码
细节:302码也可以转发到外网去
304码告诉浏览器服务器文件没有变化不必重新取数据
Expires,Cache-Contrl,Pragma三个共同决定浏览器是否要保存缓存
⑤文件下载
//返回的文件
header("Content-type: application/octet-stream");
//按照字节大小返回
header("Accept-Ranges: bytes");
//返回文件大小
header("Accept-Length: $file_size");
//这里客户端的弹出对话框,对应的文件名
header("Content-Disposition: attachment; filename=".$file_name);