首页 PHP 库 其它类库 内容协商PHP库
内容协商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连接数据库的相关内容

08 Jun 2018

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

如何使用自连接从自引用表中检索数据? 如何使用自连接从自引用表中检索数据?

13 Jan 2025

了解 SELF JOIN 及其应用程序在数据库管理领域中,SELF JOIN 是一种特殊类型的联接操作,它允许...

Oracle 数据库现在支持布尔数据类型吗? Oracle 数据库现在支持布尔数据类型吗?

12 Jan 2025

Oracle 数据库中布尔数据类型的可用性与其他 RDBMS(例如提供 BIT 数据类型的 Microsoft SQL Server)不同,Oracle 数据库...

在 Joomla 中连接第三方 PHP 库 在 Joomla 中连接第三方 PHP 库

28 Dec 2024

PHP 库很方便,因为可以从应用程序中的任何位置访问它们:从插件、组件模型、模块等。如果有人已经解决了类似的问题并将其设计为库(甚至更新了它),那就有意义了

为什么要从 Python 中的'object”继承:一个类继承问题 为什么要从 Python 中的'object”继承:一个类继承问题

24 Dec 2024

了解 Python 类继承在 Python 中,类可以从其他类继承,这使它们能够访问父类的属性并...

oracle数据库中常用的段有哪些 oracle数据库中常用的段有哪些

04 Mar 2025

本文研究了Oracle数据库细分类型(数据,索引,回滚,临时),其性能含义和管理。 它强调根据工作量和数据特征选择适当的段类型,以提高最佳效率

See all articles