浏览器的刷新有2类

  第1类:普通刷新。会首先从缓存中加载内容,缓存中已过期部分内容会从服务器重新请求。

  第2类:强制刷新(刷新缓存和页面)。会从服务器重新请求所需要加载的内容

  第2类刷新的情况:

  1)快捷键CTRL + F5

  2)按键CTRL + 点击工具栏刷新按钮

  3)按键CTRL + 点击地址栏右侧刷新按钮

  第1类刷新的情况:

  1)点击工具栏刷新按钮

  2)点击地址栏右侧刷新按钮

  3)网页中右键菜单,点击刷新按钮

  4)菜单:查看->重新载入

  5)快捷键F5

  6)快捷键SHIFT + F5

  7)通过鼠标手势刷新

  8)按键CTRL + 网页中右键菜单,点击刷新按钮

  9)按键CTRL + 菜单:查看->重新载入

  10)Webkit核下,快捷键CTRL + R

  那么这两类刷新在测试过程中应该如何测试呢?在微软的官网上可以看到下面的描述:

  REFRESH_NORMAL

  Refresh without sending a “Pragma:no-cache” HTTP header to the server.REFRESH_IFEXPIRED

  Not currently implemented.REFRESH_COMPLETELY

  Refresh without forced cache validation by sending a “Pragma:no-cache” header to the server (HTTP URLs only). Same as pressing Ctrl+F5 in Microsoft Internet Explorer.

  原文摘录至:http://download.taobaocdn.com/client/browser/download.php

  实际测试中采用wireshark进行测试,当打开相应网址的时候用wireshark捕获相应的消息,查看http消息中的内容,其中 [Hypertext Transfer Protocol]中包含值 [Cache-control:no-cache]为强制刷新,不包含[Cache-control:no-cache]的为普通刷新。

  其中 http1.0以“pragma: no-cache”为准  http1.1的以 ”Cache-Control: no-cache”为准,实际情况列举如下:

  服务器支持http 1.1的情况下  不发pragma:no-cache  只有Cache-Control: no-cache

  服务器支持 http 1.0的情况下 只发pragma:no-cache

  不知道服务器是否支持http 1.1时  两者都发.