浏览器缓存

HTTP Request Response详讲

被刻印的时光 ゝ 提交于 2019-12-07 10:50:20
HTTP Request header 当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等。 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了Web应用程序的内部工作. 本文将对HTTP协议进行详细的实例讲解,内容较多,希望大家耐心看。也希望对大家的开发工作或者测试工作有所帮助。使用Fiddler工具非常方便地捕获HTTP Request和HTTP Response, 关于Fiddler工具的用法,请看我另一篇博客[ Fiddler 教程 ] 阅读目录 什么是HTTP协议 协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器 目前我们使用的是HTTP/1.1 版本 Web服务器,浏览器,代理服务器 当我们打开浏览器,在地址栏中输入URL,然后我们就看到了网页。 原理是怎样的呢? 实际上我们输入URL后,我们的浏览器给Web服务器发送了一个Request, Web服务器接到Request后进行处理,生成相应的Response,然后发送给浏览器, 浏览器解析Response中的HTML,这样我们就看到了网页,过程如下图所示 我们的Request

PHP 中cookie 和 session 的分析

扶醉桌前 提交于 2019-12-07 00:39:04
1. PHP 的COOKIE cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。 PHP 在http 协议的头信息里发送cookie,因此 setcookie() 函数必须在其它信息被输出到浏览器 前调用,这和对 header() 函数的限制类似。 1.1 设置cookie: 可以用 setcookie()或 setrawcookie()函数来设置 cookie。也可以通过向客户端直接发送http 头来 设置。 1.1.1 使用 setcookie()函数设置cookie: bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure [, bool httponly]]]]]] ) name: cookie 变量名 value: cookie 变量的值 expire: 有效期结束的时间 path: 有效目录 domain: 有效域名,顶级域唯一 secure: 如果值为 1,则cookie 只能在https 连接上有效,如果为默认值 0,则http 和 https 都可 以。 例子: 代码片段 <?php $value = 'something from somewhere'; setcookie(

浏览器缓存 JavaScript localStorage 的基本使用

谁说我不能喝 提交于 2019-12-06 23:39:24
localStorage 基本特性 是HTML5中加入的新特性,主要解决cookie存储不足的问题 一般在浏览器中支持的是5M大小 IE8以上才支持这个属性, 属于永久性存储,需手动清除 基本使用如下: // 设置缓存 function setCache (key, value) { if (key == '' ) { return false ; } else { localStorage.setItem(key, value); } } // 读取缓存 function getCache (key) { return localStorage.getItem(key); } // 删除缓存 function removeCache (key) { localStorage.removeItem(key); } // 清除所有缓存 function clearCache () { localStorage.clear(); } 来源: CSDN 作者: 拾柒boy 链接: https://blog.csdn.net/zengweib208/article/details/82192962

有关WebView的一些使用方法

坚强是说给别人听的谎言 提交于 2019-12-06 18:06:53
有关WebView的一些使用方法 muyuren 2016-04-13 Android系统中内置了一款高性能 webkit 内核浏览器,在 SDK 中封装为一个叫做 WebView 组件。 在开发过程中应该注意几点: 1.这是最基本的 AndroidManifest.xml 中必须添加访问网络权限。 2.如果访问的页面中有 Javascript,则 WebView 必须设置支持 Javascript。 WebView.getSettings().setJavaScriptEnabled(true); 3.如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖 WebView的WebViewClient对象。 mWebView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view, String url){ view.loadUrl(url); return true; } }); 4.如果不做任何处理 ,浏览网页,点击系统“Back”键,整个 Browser 会调用 finish()而结束自身,如果希望浏览的网页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该

Apache启用mod_expires模块

旧城冷巷雨未停 提交于 2019-12-06 17:33:52
mod_expires可以减少10%左右的重复请求,让重复的用户对指定的页面请求结果都CACHE在本地,根本不向服务器发出请求。 在使用之前,首先要确认一下”mod_expires”模组是否有启用.如果是自己安装Apache来架设网页主机的话,这里我们可以透过编辑Apache的”httpd.conf”设定档来处理.搜寻一下,你可能会找到这么一行: #LoadModule expires_module modules/mod_expires.so 复制代码 将该行前面的”#”字号删除,然后将”httpd.conf”设定档储存后,重新启动Apache来使这个更新生效. 当然如果我们是租用虚拟主机的话,”httpd.conf”设定档我们一般用户是接触不到的,而在网站根目录里写个”.htaccess”设定档, 我想在运用上相对是较灵活的.”mod_expires”的设定资料除了可以写在Apache的”httpd.conf”设定档中,也可以写 在”.htaccess”设定档里. 我们知道在使用浏览器浏览网页时,浏览器会把网页资料快取(Cache)下来储存在本机端,用以加快下回浏览相同网页时不必再重新由网站上下载,进 而有加速的效果.使用mod_expires模组来加速网页浏览,这里所谓的”加速”,其实是利用”mod_expires”的功能,来设定网页文件的过 期时间,加长网页文件被浏览器快取

php的目录结构

夙愿已清 提交于 2019-12-06 16:52:05
phpcms v9框架的目录结构分析 phpcms v9框架的目录结构分析: 了解v9框架的目录结构,有助于帮助我们快速建立起对v9框架的一个整体认识 打开"mycms"项目,有如下文件和目录 使用协议说明文档、英文版的用户手册,这两项不是项目所必须的,可暂时将其删除 |-----api 接口文件目录 |-----caches 缓存文件目录 |-----configs 系统配置文件目录 |-----database.php 数据库配置文件 |-----route.php 路由配置文件 |-----system.php 系统配置文件 |-----cache.php 缓存配置文件 |-----configs_* 系统缓存文件目录 |-----configs_commons/caches_data 主要用来存放后台设置的配置信息 |-----category_content.cache.php栏目与站点映射所对应的配置文件 |-----category_content_1.cache.php站点1下所有栏目的详细配置信息 |-----category_item_1.cache.php 文章模型下各栏目所对应的数据量 |-----category_item_2.cache.php 下载模型下各栏目所对应的数据量 |-----category_item_3.cache.php

不使用cookie记录用户信息

孤人 提交于 2019-12-06 16:10:39
cookie是什么: cookie是由web服务器保存在用户浏览器(客户端)上的小文件,它可以包含用户信息,用户操作信息等等,无论何时访问服务器,只要同源,就能携带到服务端 常见方式 一般:请求一个接口,返回是否登录,如果登录成功,服务器(set-cookie)设置cookie到浏览器,以后请求api会继续请求 jwt:将用户id.payload.签证进行加密,并且注入到客户端cookie,之后每次请求会在服务端解析该cookie,并获取对应的用户数据,由于存在客户端,所以解放了服务端,减少服务端压力。也可以将该cookie放到根域名下,这样就可以登录一次,遍地开花。 可以看到,常见的方式都是利用cookie(或者浏览器storage),这样你的信息还是会被看到,如果别人获取到你的cookie也有办法进行破解甚至直接复制登录。那么有没有办法不借用cookie来记录用户信息的? 利用缓存存储用户信息 优点:安全可靠 缺点:依赖服务端 原理概述: 请求一个资源,如果设置cache-control、lastmodify、etag等,会进行缓存相关的判定: cache-control:是否强缓存,如果命中直接读取浏览器缓存的上次返回内容 last-modify:如果未命中强缓存,进行时间的判断,如果有if-modified-since并且和last-modify那么读取缓存

服务器部署之nginx的配置

亡梦爱人 提交于 2019-12-06 14:59:09
nginx可作为Web和 反向代理 服务器,在高连接并发的情况下,Nginx是Apache服务器不错的替代品。下面记录一下自己对nginx的配置和使用。 nginx的安装 环境:oracle-linux7 安装依赖 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre 安装nginx yum -y install nginx # 可能找不到安装包,需要源码安装 # 源码安装,在合适的目录下 wget http://nginx.org/download/nginx-1.10.2.tar.gz tar zxvf nginx-1.10.2.tar.gz cd nginx-1.10.2 mkdir /usr/local/nginx # 生成配置文件 ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make && make install # 设置软连接 ln -s /usr/local/nginx/sbin/nginx /usr/bin/ 启动测试 cd /usr/local/nginx/sbin/ nginx # 启动,默认是在后台运行

面向站长和网站管理员的Web缓存加速指南

自闭症网瘾萝莉.ら 提交于 2019-12-06 13:36:40
原文(英文)地址: http://www.mnot.net/cache_docs/ 版权声明: 署名-非商业性使用-禁止演绎 2.0 这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。 什么是Web缓存,为什么要使用它? 缓存的类型: 浏览器缓存; 代理服务器缓存; Web缓存无害吗?为什么要鼓励缓存? Web缓存如何工作: 如何控制(控制不)缓存: HTML Meta标签 vs. HTTP头信息; Pragma HTTP头信息(为什么不起作用); 使用Expires(过期时间)HTTP头信息控制保鲜期; Cache-Control(缓存控制) HTTP头信息; 校验参数和校验; 创建利于缓存网站的窍门; 编写利于缓存的脚本; 常见问题解答; 缓存机制的实现:Web服务器端配置; 缓存机制的实现:服务器端脚本; 参考文档和深入阅读; 关于本文档; 什么是Web缓存,为什么要使用它? Web缓存位于Web服务器之间(1个或多个,内容源服务器)和客户端之间(1个或多个):缓存会根据进来的请求保存输出内容的副本,例如html页面, 图片,文件(统称为副本),然后,当下一个请求来到的时候

微博研发实习阶段性总结及知识点整理

ⅰ亾dé卋堺 提交于 2019-12-06 13:04:21
阶段性总结及知识点整理 阶段性总结及知识点整理 数据回补 SSO单点登录 异构共存 Http Https协议 数据库容灾备份策略 流程 监控 调试 优化 Mcq消息队列 Cron Tasks定时任务 缓存与数据库 降级策略 版本控制 查看与分析网络请求 性能分析方法 数据回补 程序运行中由于未知原因造成的数据读出不一致的情形,在排查和确认代码和接口符合要求的情况下,通过手动代替定时任务调用一次相应方法,重新获取一遍数据,覆盖之前误读内容。 不能直接人为改动线上数据。 SSO单点登录 微博的Web应用服务器是无状态的,用户的登录状态信息由专门的服务器管理,sso sdk 为业务层提供了一套统一的标准的获得用户登录状态等信息的方法,SSOClient代码包对sdk作了进一步封装,供业务代码调用,屏蔽了底层实现,相应文件部署在php include path中。 业务层代码只负责调用SSOClient中的方法,不关心实现,体现了封装性。获得当前用户登录状态信息等通用方法被抽象出来在基类中实现,体现了继承性。 票据ticket作为凭证,当应用需要用户登录时,用户输入用户名密码到sso服务器进行验证并获取票据,并将票据转交应用程序,应用程序向sso服务器发送票据,验证其有效性,并完成登录。这样的设计避免了用户直接将用户名密码信息发送到应用服务器,一是安全性,二是低耦合。