http协议
在chrome浏览器中按f12键,切换到network,点击一个请求,便可看到下面的一些请求信息.
①http协议是建立在tcp/ip协议的基础之上的
②http1.0为短链接(一连通就挂掉),http1.1为长连接(有默认超时时间)——现在多采用http1.1协议
③get请求
Request Headers信息包含
Accept:/ 表示客户端可以接受任何数据
Accept-Encoding:gzip, deflate, sdch 表示接受什么样的数据压缩格式
Accept-Language:zh-CN,zh;q=0.8 页面语言
Connection:keep-alive 表示不要断掉我们的请求
Host:c.cnzz.com 主机地址
Referer:http://student.csdn.net/ 表示我是从哪来的
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36 告诉服务我的浏览器的内核,操作系统等信息
在服务器端,我们可以通过预定义的数组$_SERVER来获取我们需要的信息
包含的有[ 这几个比较常用到]:
HTTP_HOST 当前请求的 Host: 头信息的内容
REMOTE_ADDR 访问该页面的ip
DOCUMENT_ROOT 可以获取apache的主目录
REQUEST_URL 可以获取请求的资源名
④http请求有两种主要的方式
get/post区别:
1.安全性post较高
2.浏览器对post提交的数据量没有限制,get有长度限制
服务器响应 Response Headers
Status Code:200 OK 200 Ok 指示客服端的请求已经成功收到,解析,接受。
Content-Length:765 服务器响应的数据量
Content-Type:text/html;charset=utf-8 文档类型
Date:Tue, 07 Jul 2015 02:08:28 GMT 告诉浏览器请求页面的时间
Server:nginx 表示告诉浏览器服务器的情况
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0 缓存
Header功能就是改变服务器发送浏览器的状态码
细节: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);