基于 TCP/IP 通讯协议获取网络资源 ( html, css ... ).php
http 协议 ( Hyper Text Transfer Protocol 超文本传输协议 ) 用于从万维网 ( www ) 中传输超文本到本机浏览器的传送协议, 互联网的基础协议.css
1、 客户端 ( user-agent ) :html
一般由浏览器来扮演, 也能够是应用程序, 爬虫等.web
浏览器发送一个请求到 web 服务器获取 html 文档, 解析文档中的资源信息再发送其它请求获取到 css 样式或脚本进行页面渲染, 以及一些其它的资源 ( 图片或视频 ... ), 浏览器最后会整合资源显示.数据库
2、 web 服务端跨域
负责接收处理请求 ( requests ), 返回响应 ( response ) 所请求的文档.浏览器
它能够是负载平衡 ( 负载均衡 ) 的一组服务组成的计算机集群, 也能够是某个复杂的软件, 经过向其它计算机 ( 如缓存, 数据库服务器, 电子商务服务器 ) 发起请求获取资源.缓存
负载平衡 ( 负载均衡 ): 经过多个计算机、网络链接、CPU、磁盘驱动器或其它资源中分配负载, 以达到最优化的资源使用、最大化的吞吐率、最小化的响应时间、同时避免过载的目的, 经常使用于解决高并发和高可用问题.安全
Server 不必定是机器, 但机器上能够有多个 Server, 在 http/1.1 和 Host 头部能够共享一个 IP 地址.服务器
3、 代理 ( Proxies )
处于浏览器和服务器之间, 大都在传输层上 ( 即应用层 ), 主要有以下几种做用 :
4、 特性
5、 请求方法
get :请求获取指定资源
post : 想指定资源提交数据进行处理请求 ( 如提交表单或上传文件 ... ), 有可能会建立新的资源或修改已有资源
get 受 url 长度限制, 并非 http 协议规范限制的, 而是浏览器和服务器限制的
post 理论上无长度限制, 出于安全考虑, 服务器会在实现时作一些限制
put : 只对已在的指定资源总体更新
patch` : 用于资源部分更新, 当资源不存在时, 会建立一个新的资源
delete : 删除指定资源
connect : http/1.1 协议中将链接改成管道方式的代理服务器, 一般用于 SSL 加密服务器的连接与非加密的 http 代理服务器的通讯
head : 用于查看服务器性能, 只获取响应头信息, 不会返回内容部分 ( 响应主体 )
trace : 用于 http 请求的测试或诊断, 返回服务器收到的请求
options : 用于查看服务器性能, 测试服务器功能是否正常, 请求服务器返回该资源所支持的全部 http 请求方法 .
JavaScript XMLHttpRequest 对象进行 CORS 跨域资源共享时, 用此方法发送嗅探请求, 以判断是否有对目的资源访问权限
6、 状态码
7、 Cookie
保存在本地的服务器数据, 会在下次请求携带上访问服务器, 一般用于告知服务器两个请求是否源于同一浏览器, 如保持登陆状态 ( http 是无状态的 )
// 设置 Cookie setcookie('cookie[name]', 'value'); // 刷新输出 Cookie if (isset($_COOKIE['cookie'])) { // isset 检测变量是否已设置而且非 NULL foreach ($_COOKIE['cookie'] as $name => $value) { $name = htmlspecialchars($name); // htmlspecialchars 将特殊字符转 html 实体 $value = htmlspecialchars($value); echo "$name : $value <br>"; } }
主要应用
缺点
分类
过时时间的设定只与客户端相关 : Set-Cookie: id=a3fWa; Expires=Wed, 25 Dec 2018 08:20:00 GMT;
注意 : 有些浏览器有会话恢复功能, 即便浏览器关闭了, 会话期 Cookie 也会保存着