Http協議(7)—Http緩存

一、冗余的數據傳輸
有些客戶端訪問服務器頁面時,服務器會多次響應同一個頁面的副本給客戶端,這會產生冗余數據,故使用緩存就可以保留第一條相應的副本,以后就響應緩存的數據

二、帶寬瓶頸
在需要下載大型文件時,如果在局域網中放入該文件的一個副本,則可以很快就下載完畢

三、瞬間擁塞
服務器同一時間處理多次請求,就會出現瞬間擁塞

四、距離延時
客戶端和服務器存在一定的距離,信號傳輸會出現延時,如果將緩存放在附近的機房里就可以減少距離延時

五、命中與未命中
1.再驗證
a.需要檢測緩存副本是不是原始服務器上最新的緩存數據
b.緩存對緩存副本進行再驗證時需要向服務器發送一個小的請求,如果內容沒有變化,則服務器會以304作為響應,緩存依然認為副本有效,則再次作為暫時新鮮的提供給客戶端,這被稱作再驗證命中
c.在GET請求中添加If-Modified-Since首部作為再驗證的工具
i.再驗證命中
如果服務器對未被修改,會向客戶端發送一個HTTP304的響應碼
ii.再驗證未命中
如果服務器對象與緩存的不同,會向客戶端發送一個HTTP 200 ok的響應碼
iii.對象被刪除
如果服務器對象被刪除,會向客戶端發送一個HTTP404的響應碼,并刪除起緩存副本

2.文檔命中率

3.字節命中率
緩存提供的字節在傳輸的所有字節所占的比例

4.區分命中話與未命中的情況
客戶端可通過Age和Date首部來判別

六、緩存的拓撲結構
1.私有緩存
緩存在個人電腦和磁盤中

2.公有緩存
特殊的代理服務器,接收來自多個用戶的訪問
3.代理緩存的層次結構

七、緩存的處理步驟
1.接受
從網絡中讀取抵達的請求報文

2.解析
解析報文為片段

3.查找
查看是否有本地副本可用,如果沒有則從服務器上獲取并存入本地副本中

4.新鮮度檢測
當超過緩存的新鮮度限值時需要向服務器檢查緩存是否發生變化

5.創建響應
緩存會用新的首部(Date除外)和已緩存的主題來構建一條響應報文

6.發送
緩存將響應發送給客戶端

7.日志
緩存可選的創建一個日志文件來描述此次事務

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273361.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273361.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273361.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Apache JMeter--網站自動測試與性能測評

Apache JMeter--網站自動測試與性能測評2013-02-28 15:48:05標簽:JmeterFrom:http://bdql.iteye.com/blog/291987 出于學習熱情,翻譯總結Emily H. Halili的《Apache JMeter》一書的部分內容。 JMeter的簡介 可以肯定的是,JMeter至少符合以下幾…

Linux 重命名文件

inux下重命名文件或文件夾的命令mv既可以重命名,又可以移動文件或文件夾. 例子:將目錄A重命名為B mv A B 例子:將/a目錄移動到/b下,并重命名為c mv /a /b/c 其實在文本模式中要重命名文件或目錄的話也是很簡單的,我們只…

苦逼的.net程序員, 轉行高富帥iOS移動開發

先知先覺,后知后覺 **- 在做了兩三年.net開發后, 還是感覺.net不是那么牛逼, 許多給我一起搞.net的同學, 不是去做了android, 就是去做了iOS, 或者java; 這讓我對.net的前景有了一些動搖, 在三思考之后,還是決定放棄.net ,理由很簡單,就是工資有點低; 由于藍鷗iOS培訓機構,一…

C# DataTable的詳細使用方法

在項目中經經常使用到DataTable,假設DataTable使用得當,不僅能使程序簡潔有用,并且可以提高性能,達到事半功倍的效果,現對DataTable的使用技巧進行一下總結。 一、DataTable簡單介紹 (1)構造函數 DataTable() 不…

mysql設置環境變量

-- 設置或修改系統日志有效期SET GLOBAL expire_logs_days8;SHOW VARIABLES LIKE %expire_logs_days%;-- 設置或修改系統最大連接數SET GLOBAL max_connections 2648;SHOW VARIABLES LIKE %max_connections%;-- 修改MYSQL自動編號步長SHOW VARIABLES LIKE %auto_increment%;SE…

CentOS7 編譯安裝LVS 互為主備 (實測 筆記 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )

環境: 系統硬件:vmware vsphere (CPU:2*4核,內存2G,雙網卡) LVS服務器(兩臺): 系統:Centos7.0 64位(LVSkeepalived) LvsMaster:192.168.1.21 (主…

shell 執行mysql語句

<pre name"code" class"plain">#變量定義 sqlname"test.sql" dir"/sdb2/backup/mysql_db_backup/backup/databases" host"127.0.0.1" user"root" passwd"root" dbname"test" #導…

hdu3081 Marriage Match II(最大流)

轉載請注明出處&#xff1a; http://www.cnblogs.com/fraud/ ——by fraud Marriage Match II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2410 Accepted Submission(s): 820 Problem Descriptio…

CentOS6安裝tomcat6

首先我們要下載一個tomcat的安裝包 http://ftp.riken.jp/net/apache/ wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.41/src/apache-tomcat-6.0.41.tar.gz 下載好后解壓到一個以目錄&#xff0c;我的是放在了/usr/apache-tomcat-6.0.41 tar –zxvf apache-t…

修復 XE7 , XE8 Frame 內 PopupMenu 快捷鍵失效問題

問題&#xff1a;將 Frame 含 PopupMenu 放置 Form 后&#xff0c;在 Frame 里的 PopupMenu 失效&#xff0c;無法按快捷鍵。 適用&#xff1a;(XE7 update 1 / XE8) for Windows 平臺 修正方法&#xff1a; 請將源碼 FMX.Forms.pas 復制到自己的工程目錄里&#xff0c;再進行修…

Vmware Centos中安裝vmtools工具

在Vmware安裝虛擬機是很好玩的&#xff0c;可是有時候在虛擬機與本地主機之間相互傳遞文件時卻是一件比較麻煩的事情&#xff0c;這時候我們安裝一個vmtools的工具這樣我們就可以隨意的在虛擬機與主機之間相互拖拽文件&#xff0c;下面我們就來說說如何安裝vmtools 點擊虛擬機會…

關于Dapper - 能否不創建定義表對應類使用

1.是可以的&#xff0c;而且支持的很棒 1 /*2 lcg3 * 1.看看能不能用4 * 2.怎么用 - 引哪個文件即可&#xff1f;5 */6 7 //數據庫連接參數8 private const string strConn "Data SourceAlen;Initial Catal…

動態規劃 背包九講的實現。

最近在學習動態規劃&#xff0c;會了不少基礎的之后就開始挑戰比較困難的背包問題了&#xff0c;我這里自己寫了每一講的問題&#xff0c;解析&#xff0c;代碼&#xff0c;注釋。如果dp還沒入門的孩紙就去看看我的另一篇文章http://www.cnblogs.com/luyi14/p/4344946.html …

Linux中查看負載

行車過橋 一只單核的處理器可以形象得比喻成一條單車道。設想下&#xff0c;你現在需要收取這條道路的過橋 費 — 忙于處理那些將要過橋的車輛。你首先當然需要了解些信息&#xff0c;例如車輛的載重、以及 還有多少車輛正在等待過橋。如果前面沒有車輛在等待&#xff0c;那么你…

flask小demo-數據查詢

mysqlconn-flask.py 1 # -*- coding: utf-8 -*-2 #codingutf-83 4 import os5 import mysql.connector6 from flask import Flask, request, render_template7 8 app Flask(__name__)9 10 def db(): 11 # 注意把password設為你的root口令: 12 conn mysql.connect…

js實現的文件下載

/** * Javascript 多文件下載 * author Barret Lee * email barret.chinagmail.com */var Downer (function(files) { var h5Down !/Trident|MSIE/.test(navigator.userAgent); // try{ // h5Down document.createElement("a").hasOwnProperty("download&quo…

Jersey注解詳解

REST 在 2000 年由 Roy Fielding 在博士論文中提出&#xff0c;他是 HTTP 規范 1.0 和 1.1 版的首席作者之一。 REST 中最重要的概念是資源&#xff08;resources&#xff09;&#xff0c;使用全球 ID&#xff08;通常使用 URI&#xff09;標識。客戶端應用程序使用 HTTP 方法&…

Struts2配置文件詳解

解決在斷網環境下,配置文件無提示的問題我們可以看到Struts.xml在斷網的情況下,前面有一個嘆號,這時,我們按alt/ 沒有提示,這是因為” http://struts.apache.org/dtds/struts-2.0.dtd”是一個網絡地址,如果上網的話,IDE會自動幫我們下載此文件,如果斷網就沒有辦法了,但是我們還…

mysql插入圖片數據

import java.sql.*; import java.util.Scanner; import java.io.*; public class mysql插入圖片 { private static final File File null;private static String String;public static Connection getConn() { Connection conn null; try { Class.forName("com.…

mybatis插入圖片處理--mysql

1. 數據庫Scheme 1.數據庫SchemeDROP TABLE IF EXISTS user_graphic_t; /*!40101 SET saved_cs_client character_set_client */; /*!40101 SET character_set_client utf8 */; CREATE TABLE user_graphic_t ( id int(11) NOT NULL AUTO_INCREMENT, graph…