搜索
内容协商PHP库
<?php
if (! ($loader = @include __DIR__ . '/../vendor/autoload.php')) {
    die(<<<EOT
You need to install the project dependencies using Composer:
$ wget http://getcomposer.org/composer.phar
OR
$ curl -s https://getcomposer.org/installer | php
$ php composer.phar install --dev
$ phpunit
EOT
    );
}
$loader->add('Negotiation\Tests', __DIR__);

内容协商技术通常有三种实现方案:

(1)客户端驱动

客户端发起请求,服务器发送可选项列表,客户端作出选择后在发送第二次请求。

优点:比较容易实现

缺点:增加了时延,至少要发送两次请求,第一次请求获取资源列表,第二次获取选择的副本。

(2)服务器驱动

服务器检查客户端的请求首部集并决定提供哪个版本的页面。

优点:比客户端驱动的协商要快。HTTP提供了q机制,允许服务器近似匹配,还提供了vary首部供服务器告知下游的设备(如代理服务器)如何对请求估值。

缺点:首部集不匹配,服务器要做猜测

(3)透明协商

某个中间设备(通常是缓存代理)代表客户端进行协商

优点:免除了web服务器的协商开销,比客户端驱动的协商要快。

缺点:HTTP并没有提供相应的规范


免责声明

本站所有资源均由网友贡献或各大下载网站转载。请自行检查软件的完整性!本站所有资源仅供学习参考。请不要将它们用于商业目的。否则,一切后果由您负责!如有侵权,请联系我们删除。联系方式:admin@php.cn

相关文章

解读php的PDO连接数据库的相关内容解读php的PDO连接数据库的相关内容

08Jun2018

php的PDO连接数据库在数据操作中很重要,本篇文章将详解其相关内容。

PHP 库如何帮助从 PDF 文件中提取文本层内容和坐标?PHP 库如何帮助从 PDF 文件中提取文本层内容和坐标?

03Dec2024

使用 PHP 从 PDF 文件中读取和提取文本图层找到一种方法来读取 PDF 文件的文本图层、提取其内​​容并获取其...

如何在 PHP 中有效使用 XMLReader 将大型 XML 文件内容存储在数据库中?如何在 PHP 中有效使用 XMLReader 将大型 XML 文件内容存储在数据库中?

06Dec2024

XMLReader:在 PHP 中有效利用它问题:对于 SimpleXML 无法处理的大型 XML 文件,我正在探索 XMLReader 但缺乏指导...

为什么我的 JNI 项目找不到依赖库?为什么我的 JNI 项目找不到依赖库?

21Nov2024

解决 UnsatisfiedLinkError: Can't Find Dependent Libraries in JNI Projects当开发 Java Native Interface (JNI) 项目时,您可能...

phpmyadmin不显示登录页面phpmyadmin不显示登录页面

30Oct2019

​phpmyadmin不显示登录页面解决方法:找到并打开phpMyAdmin\libraries\plugins\auth\AuthenticationCookie.class.php文件,将其中关于登录页面代码中的两处hide删除即可。

如何修复 phpMyAdmin 中的'count():参数必须是实现可数的数组或对象”错误?如何修复 phpMyAdmin 中的'count():参数必须是实现可数的数组或对象”错误?

20Oct2024

phpMyAdmin 错误:“count():参数必须是实现可数的数组或对象”您是否遇到过 phpMyAdmin 错误,指出“./libraries/sql.lib.php#601\ncount() 中的警告:参数必须是数组或对象

See all articles