1. 程式人生 > >php知識點3-HTTP 頭部-Accept-Encoding

php知識點3-HTTP 頭部-Accept-Encoding



1.概述
Accept-Encoding 是瀏覽器發給伺服器,宣告瀏覽器支援的編碼型別的。


2.伺服器處理accept-encoding的規則如下所示 
(1)如果伺服器可以返回定義在Accept-Encoding 中的任何一種Encoding型別, 那麼處理
成功(除非q的值等於0, 等於0代表不可接受) 


(2)* 代表任意一種Encoding型別 (除了在Accept-Encoding中顯示定義的型別) 


(3)如果有多個Encoding同時匹配, 按照q值順序排列 


(4)identity總是可被接受的encoding型別(除非顯示的標記這個型別q=0),
如果Accept-Encoding的值是空  那麼只有identity是會被接受的型別 


如果Accept-Encoding中的所有型別伺服器都沒發返回, 那麼應該返回406錯誤給客戶端 


如果request中沒有Accept-Encoding  那麼伺服器會假設所有的Encoding都是可以被接受的, 


如果Accept-Encoding中有identity  那麼應該優先返回identity (除非有q值的定義,或者你
認為另外一種型別是更有意義的) 


注意:
如果伺服器不支援identity 並且瀏覽器沒有傳送Accept-Encoding,那麼伺服器應該傾向於
使用HTTP1.0中的 "gzip" and "compress" ,  伺服器可能按照客戶端型別 傳送更適合的encoding型別 


大部分HTTP1.0的客戶端無法處理q值.並且有的伺服器無論是否傳遞了Accept-Encoding,
都會返回壓縮資料,所以還是要對response的Content-Encoding進行監測。


2.例子
Accept-Encoding: compress, gzip           //支援compress 和gzip型別 
Accept-Encoding:                  //預設是identity 
Accept-Encoding: *                 //支援所有型別 
Accept-Encoding: compress;q=0.5, gzip;q=1.0     //按順序支援 gzip , compress 
Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0 // 按順序支援 gzip , identity 

相關推薦

php知識點3-HTTP 頭部-Accept-Encoding

1.概述 Accept-Encoding 是瀏覽器發給伺服器,宣告瀏覽器支援的編碼型別的。 2.伺服器處理accept-encoding的規則如下所示  (1)如果伺服器可以返回定義在Accept-Encoding 中的任何一種Encoding型別, 那麼處理 成功(除非

PHP知識點總結3

add 提高 出現 space extends 全限定名 session nec 實現 PHP 函數 PHP 的真正威力源自於它的函數。 在 PHP 中,提供了超過 1000 個內建的函數。 <html> <body> <?php funct

PHP3種發送HTTP請求的方式

default 管理 mon class 防止 列表 密碼 value opera 1.cURL <?php class IndexController extends ControllerBase { public function indexActi

[紙上談兵] http頭部欄位Transfer-Encoding

一個月沒寫,自己定的目標沒有實現,不想寫太水的內容。但這一篇可能又是水 我在排查httpclient問題時,發現了這個請求頭,但不知道是做什麼用的,於是百度一下 一、Transfer-Encoding: chunked Transfer-Encoding頭欄位可以用在請求頭或響應頭中。

php獲取http頭部請求狀態資訊

我們在使用站長工具會發現有一個獲取網站http狀態資訊了,其實這個功能使用php非常的簡單的,我們可以使用curl來實現下面來看一些整理的例子。使用curl需要在php.ini中設定啟用才行 >< Windows的伺服器中,開啟php.ini,找到:extensi

HTTP Content-Type Accept-Charset Accept-Encoding

最近在閱讀Okhttp原始碼的時候,遇到了Content-Type:application/x-www-form-urlencoded 其實還有一種常見的編碼格式是application/json 因為自己有一些理解,而且比較懶,所以我不百度了 Content-

Android Accept-Encoding為gzip,deflate Http請求返回的結果為亂碼

最近專案中遇到這樣一個坑: 某一介面的HttpUrlConnection的請求返回結果為亂碼,但PC瀏覽器直接開啟是正常的。 效果圖如下: 經過查閱程式碼發現,該介面的對應Header中有這麼一段程式碼: headers.put("Accept-En

HTTP標頭“Vary:Accept-Encoding”指定方法及其重要性分析

在webkaka的網站速度診斷效能優化裡有一項叫指定“Vary:Accept-Encoding”標頭,可能很多人不太明白這是什麼意思,不知道它對網站的影響有多大,不知道如何進行優化,為此,本文將給大家闡述下“Vary:Accept-Encoding”標頭的意義以及設定方法

js常見知識點3.面向對象之繼承、設計模式

環境 設計 方法 nbsp -- div 細節 外部 接口實現 一、面向對象的三大特征   建議回復:    封裝:屏蔽內部細節、調用外部接口實現對應功能(函數調用)   繼承:子類繼承父類中的屬性和方法   多態(js中不存在多態的概念) 二、繼承   建議回復: 

java小知識點3

調用 靜態 編譯器 ted .cn sta 語義 ron 過程 調用對象方法的執行過程: 編譯器查看調用對象的類型和方法名 編譯器查看調用方法時提供的參數類型 如果是靜態綁定方法(private、static、final),編譯器可以直接確定下來 虛擬機調用x實際對象最適

如何在CentOS 6.7上將PHP 5.3升級到PHP 5.6

apr efault https epo post group add get ros 如何在CentOS 6.7上將PHP 5.3升級到PHP 5.6 andyz 博客 45評論 Facebook的TwitterGoogle+Reddit 在本文中,我將介

PHP 常用的header頭部定義匯總

匯總 basic 需要 char 跳轉 per pen power files header() 函數向客戶端發送原始的 HTTP 報頭。 認識到一點很重要,即必須在任何實際的輸出被發送之前調用 header() 函數(在 PHP 4 以及更高的版本中,您可以使用輸出緩存

haproxy 在http頭部添加後端用戶真實IP

haproxy 取用戶真是ip 在haproxy的配置文件中的前端bind下添加如下配置: http-request set-header ZXTMIP %[src]ps:其中ZXTMIP是自定義的字段 %[src]是取得IP測試結果:在瀏覽器中打開測試域名後的輸出如下:Array ( [TEMP]

PHP知識點總結4

alias 創建 nbsp 全局 pro strong 動態語言 當前 調用 file1.php <?php namespace Foo\Bar\subnamespace; const FOO = 1; function foo() {} class foo {

PHP-5.3.27源碼安裝及nginx-fastcgi配置

bcm 配置nginx rod acc mys ext oot multi math 源碼安裝php cat /etc/redhat-release uname -rm wget -O /etc/yum.repos.d/epel.repo http://mirrors.a

php隨筆(3)

奇數 字母 hpc 例如 -1 鍵值 建立 數組 yellow 對數組按照字母順序進行排序或數字升序排序(sort()) <?php $cars=array("Volvo","BMW","Toyota"); sort($cars); $clength=count($

html緩存機制,http頭部控制

請求 緩存機制 http nbsp oct 讀取 重新發送 res 過期 1.緩存分類:服務器緩存,第三方緩存,瀏覽器緩存 2.瀏覽器緩存,設置請求指定的http頭部信息。 3.http頭部屬性   Expires:設置緩存時間(某一個時間點),時間過了就重新發送請

必背知識點-3

cisco 交換機 路由器 基礎交換 深圳雲計算王森 問題1、DHCP 的報文的發送方式是什麽? 答案:廣播 問題2、什麽是廣播域? 答案:廣播的範圍。即一個網段,就是一個廣播域。 問題3、DHCP的報文是否可以發送到其他的廣播域? 答案:不可以。 問題4、DHCP客戶

http頭部 Expect

post cor 直接 body 服務 http post請求 服務器 數據 本文同時發表在https://github.com/zhangyachen/zhangyachen.github.io/issues/90 在通過curl調用對方接口時,發現超時現象很嚴重,於是詢

http頭部信息詳解

http頭部信息打開一個網頁(以淘寶網站為例)就會出現相對應的內容,這些內容是通過怎麽樣的方式展現在我們的面前呢?我們可以通過查看網頁的http頭部信息來獲取相關的內容,如HTTP的請求報文與響應報文等,如下所示 1、General:Request URL:https://img.alicdn.com/tfs