首頁 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

相關文章

為什麼要從 Python 中的「object」繼承:一個類別繼承問題 為什麼要從 Python 中的「object」繼承:一個類別繼承問題

24 Dec 2024

了解 Python 類別繼承在 Python 中,類別可以從其他類別繼承,這使它們能夠存取父類別的屬性並...

如何在 Linux 上建立和使用動態共用 C 類別庫? 如何在 Linux 上建立和使用動態共用 C 類別庫?

05 Dec 2024

在 Linux 上建立和使用動態共用 C 類別庫建立共用類別庫要建立共用 C 類別庫,您可以依照...

PHP5試用(二)_PHP教程 PHP5試用(二)_PHP教程

21 Jul 2016

PHP5試用(二)。抽象類別 抽象類別不能被實例化。 抽象類別與其它類別一樣,允許定義變數及方法。 抽象類別同樣可以定義一個抽象的方法,抽象類別的方法不會被執

為什麼無法在字段初始化程序中初始化非靜態字段? 為什麼無法在字段初始化程序中初始化非靜態字段?

03 Jan 2025

了解欄位初始化問題在您的程式碼中,您有一個儲存庫類別 (DinnerRepository) 和一個服務類別 (Service),它使用...

如何在 NetBeans 中設定 Java 專案的類別路徑? 如何在 NetBeans 中設定 Java 專案的類別路徑?

07 Dec 2024

在 NetBeans 中設定類別路徑在 NetBeans 中使用 Java 時,您可能需要調整類別路徑以包含其他程式庫或 JAR...

SimpleDateFormat 是執行緒安全的嗎? SimpleDateFormat 是執行緒安全的嗎?

06 Dec 2024

SimpleDateFormat 的線程安全性問題儘管 Java 因其線程安全類別而聞名,但 SimpleDateFormat 類別是一個例外,它...

See all articles