在了解HTTP协议之前应该明白任何数据的交互都是有协议存在的 例如网互联的沟通是基于TCP/IP寻址协议的使电脑能够找到彼此
浏览器与服务器之间的数据交互需要借助HTTP协议(HypeTextTransferProtocl)超文本传输协议
详细规定了 浏览器和万维网服务器之间相互通信的规则 通过因特网传送万维网文档的数据传输协议、
HTTP主要由 http请求 和 http 响应来决定的
作用: 用于服务器传输超文本到本地浏览器 更高效 使网络传输减少 保证计算机能够安全快速的传输超文本文档
特点: 即支持b/s 又支持c/s 简单 快速 灵活 (可以快速传输任何类型的数据对象)无连接(限制每次链接只处理一次 一旦响应请求立即 断开连接) 无状态(无记忆能力)
http请求 浏览器将http请求协议与数据一起发送到服务器
主要包括 ; 1 请求行 GET(请求方式)/index,php(uri) HTTP/1.1(协议版本)
2 请求头 各种协议信息
host 主机名
accepe 告知服务器能够接收数据的处理方式
accepr_language 告知服务器能够接受的语言
user_Agent 浏览器内核信息
cookie 浏览器存储的该网站的数据
3空行 分割请求头与请求体
4 请求体 post方式传递的数据 get方式数据放在url中不放在http体中
所谓协议 就是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。
HTTP响应 服务器给浏览器返回数据时所采用的规则
主要包括 1 响应行 协议版本 状态码 状态提示 例如 HTTP/1:1 200 ok
2 响应头 具体的协议项
content_type 内容类型
date 服务器时间
server 服务器信息
set_cookie 与请求的cookie相对应 服务器想保留在浏览器上的cookie信息 具体怎么操作 看浏览器
3 空行 分割响应头与响应体
4 响应体 服务器返回给浏览器的信息
php通过header控制响应头中的内容 比如立即重定项 按时重定向 对返回数据进行控制 (解析图片中) 实现文件的下载等功能
<?php
//php通过header 设置响应规则
//立即重定向
header(location :http:www.baidu.com);
echo ('hello mworld');
//后面的echo 语句不会执行 会立即跳到www.baidu.com
//按时重定向
header('Refresh:3 ,url = www.baidu.com/s?wd = hello world');
//会立即跳到百度页面 并检索 hello world 通常用于网页的提示跳转
// http协议默认的文件类型是text/html 所以直接输出 文件内容 会乱码 echo file_get_content(a.png)
header ('Content-type:image/png');//控制输出类型 更改默认模式
echo file_get_contents('a.png');//此时浏览器就会解析出图片 而不是乱码
// 实现文件的下载 content_dispostion = 设置让浏览器如何处理内容
header ( 'Content-type:application/otect_stream');//告诉浏览器当前内容为数据流 不要解析
header("content-dispostion:attachment;filename='大美女.png'");//让浏览器下载这个图片
echo file_get_contents('a.png');
?>