<?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
相关文章
11Sep2023
内容协商是为给定的内容选择最佳表示的过程当有多个表示可用时的响应。意味着,取决于接受请求中的标头值,服务器发送响应。首要的HTTP中内容协商的机制是这些请求标头-Accept-响应可以接受哪些媒体类型,例如“application/json”、“application/xml”或自定义媒体类型,例如“application/vnd.example+xml”Accept-Charset-可接受哪些字符集,例如UTF-8或ISO8859-1.Accept-Encoding-哪些内容编码是可接受的,例
02Aug2023
php封装协议有命名空间、类、接口、抽象类、命名规范、异常处理和自动加载这些内容。1、命名空间,允许开发者将类、函数、常量等标识符组织在不同的命名空间中,防止命名冲突;2、类,可以继承其他类,实现接口,还可以定义常量和属性;3、接口,通过使用接口,代码的耦合度降低,可扩展性增强;4、抽象类,主要用于定义一个共同的抽象概念,具体的实现由子类完成。
26Apr2024
PHP函数库是一个内置工具箱,提供广泛的函数和类,涵盖基本操作、字符串操作、数组操作、数据库操作、网络通信、文件系统操作、图像处理、密码算法、数学和统计等方面,使开发人员无需编写代码即可完成各种任务,例如字符串转换、数组操作、数据库查询等。
03Jun2023
第三方类库 第三方类库指除了ThinkPHP框架、应用项目类库之外的其他类库,一般由第三方系统或产品提供,如Smarty、Zend等系统的类库等。 前面使用自动加载或import方法导入的类库,ThinkPHP约定是以.class.php为后缀的,非这类的后缀,需要通过import的参数来控制。 但对第三类库,由于不会有此约定,其后缀只能认为是php。为了方便的引入其他框架和系统的类库,ThinkPHP特意提供了导入第三方类库的功能。第三方类库统一放置在ThinkPHP系统目录/
01Jun2024
PHP框架在社交媒体内容管理中优势:高效协作:通过代码复用、版本控制和错误处理促进团队协作。内容优化:通过内容缓存、图像优化和符合SEO最佳实践优化内容,提升用户体验和搜索引擎排名。