读《深入分析Java Web技术内幕》
这里这本书的预读章节,看完预读部分,解答了一些疑惑,也相信这是一本夯实Java Web架构体系的好书。
HTTP协议解析
开发一般使用firefox的firebug调试,这的确是一个利器,HTTP的请求头响应头一目了然。
浏览器缓存机制
当我们使用 Ctrl+F5 组合键刷新一个页面时, HTTP 的请求头中会增加Pragma:no-cache 和 Cache-Control:no-cache,它告诉服务端我们要获取最新的数据而不是缓存。
试了一下,在firefox和chrome下都可以达到效果,这对开发还是不错的。
Last-Modified 字段一般用于表示一个服务器上的资源的最后修改时间,一般静态内容都会自动加上这个,浏览器再次请求时在请求头中增加一个 If-Modified-Since: Sat, 25 Feb 2012 12:55:04 GMT 字段,询问当前缓存的页面是否是最新的,如果是最新的就返回 304 状态码,告诉浏览器是最新的,服务器也不会传输新的数据。
DNS解析过程
大体是这样的:浏览器缓存 --> 本机缓存 --> DNS。当然DNS有很多层次。
使用nslookup, dig 命令可以分析解析过程
- lingceng@lingceng-Vostro-1450:~$ dig www.taobao.com
- ; <<>> DiG 9.8.1-P1 <<>> www.taobao.com
- ;; global options: +cmd
- ;; Got answer:
- ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61037
- ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 3, ADDITIONAL: 2
- ;; QUESTION SECTION:
- ;www.taobao.com. IN A
- ;; ANSWER SECTION:
- www.taobao.com. 1359 IN CNAME www.gslb.taobao.com.danuoyi.tbcache.com.
- www.gslb.taobao.com.danuoyi.tbcache.com. 1360 IN CNAME scorpio.danuoyi.tbcache.com.
- scorpio.danuoyi.tbcache.com. 219 IN A 61.55.164.241
- scorpio.danuoyi.tbcache.com. 219 IN A 61.55.164.251
- scorpio.danuoyi.tbcache.com. 219 IN A 121.22.1.251
- ;; AUTHORITY SECTION:
- danuoyi.tbcache.com. 81834 IN NS danuoyins3.tbcache.com.
- danuoyi.tbcache.com. 81834 IN NS danuoyins2.tbcache.com.
- danuoyi.tbcache.com. 81834 IN NS danuoyins1.tbcache.com.
- ;; ADDITIONAL SECTION:
- danuoyins2.tbcache.com. 467 IN A 110.75.20.28
- danuoyins1.tbcache.com. 71 IN A 115.124.17.156
- ;; Query time: 5 msec
- ;; SERVER: 127.0.0.1#53(127.0.0.1)
- ;; WHEN: Wed Jan 16 20:47:33 2013
- ;; MSG SIZE rcvd: 259
lingceng@lingceng-Vostro-1450:~$ dig www.taobao.com; <<>> DiG 9.8.1-P1 <<>> www.taobao.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61037 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 3, ADDITIONAL: 2;; QUESTION SECTION: ;www.taobao.com. IN A;; ANSWER SECTION: www.taobao.com. 1359 IN CNAME www.gslb.taobao.com.danuoyi.tbcache.com. www.gslb.taobao.com.danuoyi.tbcache.com. 1360 IN CNAME scorpio.danuoyi.tbcache.com. scorpio.danuoyi.tbcache.com. 219 IN A 61.55.164.241 scorpio.danuoyi.tbcache.com. 219 IN A 61.55.164.251 scorpio.danuoyi.tbcache.com. 219 IN A 121.22.1.251;; AUTHORITY SECTION: danuoyi.tbcache.com. 81834 IN NS danuoyins3.tbcache.com. danuoyi.tbcache.com. 81834 IN NS danuoyins2.tbcache.com. danuoyi.tbcache.com. 81834 IN NS danuoyins1.tbcache.com.;; ADDITIONAL SECTION: danuoyins2.tbcache.com. 467 IN A 110.75.20.28 danuoyins1.tbcache.com. 71 IN A 115.124.17.156;; Query time: 5 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Wed Jan 16 20:47:33 2013 ;; MSG SIZE rcvd: 259
这是我ubuntu上dig的例子,其中A是Address,NS是NameServer,CName是Canonical Name(别名的意思)。这些在书中都有解释。
CDN 也就是内容分布网络(Content Delivery Network)
使用户可以就近取得所需的内容,提高用户访问网站的响应速度。有别于镜像,它比镜像更智能,可以做这样一个比喻:CDN = 镜像 (Mirror) + 缓存 (Cache) + 整体负载均衡 (GSLB)。
淘宝有 90%以上的数据都是由 CDN 来提供的,可见搭建企业级的网站平台CDN是很有必要的。CDN需要DNS是的配合使用,不同地点请求指向不同的CDN Server。
转载于:https://www.cnblogs.com/shhaoran/archive/2013/02/12/2924447.html
读《深入分析Java Web技术内幕》相关推荐
- 读《Android 安全架构深究》
Android 安全架构深究 安全是一个非常立体而丰富得概念.在不同的场景下,安全有着不同的含义. 比如对于网络传输,安全指的是传输的数据不会被其他人看到.篡改.伪造及仿冒,传输的数据不会遭到破坏,数 ...
- 《最强Android书 架构大剖析》读书笔记
文章目录 第一章 Android 体系结构的变革之路 1.2 Android系统源码目录 与Linux的异同 Android的框架 原生二进制可执行文件 Android 的原生库 核心(core)库 ...
- Android Jetpack架构组件之 Room(使用、源码篇)
2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...
- 抖音、美团等大厂千万级用户的Android客户端架构演进之路—
在移动开发中,对开发者来说不同的人具有不同的能力.就像读一本书一样,一千个读者,有一千个哈姆雷特.但不管怎样,只要你是个软件开发者你就必须学习windows或Linux等操作系统的运行原理.Andro ...
- Android 图形架构之一 ——概述
前言 本系列的文章,可以让你明白,一个View最终是如何显示到屏幕上的,从应用层到硬件抽象层.对分析app的卡顿,掉帧等 有很大帮助. 由于图形架构的涉及到的代码量很大,所以本篇先来个总体的概述,有个 ...
- Android display架构分析-SW架构分析(1-8)
参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...
- 高通Android display架构分析
目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...
- [Android] Android MVP 架构下 最简单的 代码实现
Android MVP 架构下 最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...
- Android系统架构-[Android取经之路]
摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...
- Android系统架构图及简单的系统架构介绍
2019独角兽企业重金招聘Python工程师标准>>> ndroid的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层. ...
最新文章
- mysql查询动态表名的数据类型_Mysql中查询某个数据库中所有表的字段信息
- 宏基因组分析软件2综述、metaSPAdes、IDBA-UD、MetaQuast、Prokka、metaProdigal
- Linux定期监视某文件变化,监控Linux文件变化,防止服务器被黑
- yoyo思维题(困难) 组合数学
- 注册表模板-OEM信息自定义
- 纽约佩斯大学孔子学院:中国故事
- full join 和full outer join_多表关联:公式展开、join、过滤条件的顺序
- IBM并购网络视频会议商WebDialogs 加入Lotus Sametime
- 6-7 使用函数输出水仙花数_自学C++基础教程(输入输出2)
- 极其良心的设计导航网站
- angularjs中的数据绑定
- layui 开启关闭标签_layui新手入门所踩的一些坑
- win32com excel转pdf
- CMSIS RTOS API,内核通用API接口
- 1、系统需求分析与可行性分析(System Requirement Analysis and Feasibility Analysis)
- 安装西门子博图一直重启_博途V15.1安装及无限重启和.net3.5SP1错误处理解决方法...
- 神秘诡异的量子世界是如何毁掉科学家三观的?
- 华硕ubuntu安装
- docx文件格式转PDF格式
- linux进下一级目录下,linux进入下一级目录的命令
热门文章
- '固定' table宽度,走起!
- 搭建struts2框架
- 在VS2003下把一个DataTable Update 到数据库
- 滑坡泥石流的防御措施_滑坡泥石流防御
- g2 折线图点与点之间直线_科学网—ggplot2实现散点折线图 - 肖斌的博文
- chown r mysql ._chown -R 用户名:组名 ./ 及 chown用法介绍
- 对着爬虫网页HTML学习Python正则表达式re
- gin 生成api文档_gin-swagger 生成RESTful风格OpenAPI文档
- diskgenius 接触“只读“失败_相亲总是失败,这三个步骤你都做了吗?
- 鸿蒙os下载到电脑上,鸿蒙系统pc版下载2.0