读《深入分析Java Web技术内幕》

本文深入探讨了HTTP协议的工作原理,包括使用Firefox的Firebug进行调试的方法,浏览器缓存机制及如何通过特定请求头获取最新数据。此外,还详细解析了DNS解析过程,并介绍了CDN的工作方式及其对企业级网站的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里这本书的预读章节,看完预读部分,解答了一些疑惑,也相信这是一本夯实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 命令可以分析解析过程

Shell代码 复制代码 收藏代码
  1. lingceng@lingceng-Vostro-1450:~$ dig www.taobao.com
  2. ; <<>> DiG 9.8.1-P1 <<>> www.taobao.com
  3. ;; global options: +cmd
  4. ;; Got answer:
  5. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61037
  6. ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 3, ADDITIONAL: 2
  7. ;; QUESTION SECTION:
  8. ;www.taobao.com. IN A
  9. ;; ANSWER SECTION:
  10. www.taobao.com. 1359 IN CNAME www.gslb.taobao.com.danuoyi.tbcache.com.
  11. www.gslb.taobao.com.danuoyi.tbcache.com. 1360 IN CNAME scorpio.danuoyi.tbcache.com.
  12. scorpio.danuoyi.tbcache.com. 219 IN A 61.55.164.241
  13. scorpio.danuoyi.tbcache.com. 219 IN A 61.55.164.251
  14. scorpio.danuoyi.tbcache.com. 219 IN A 121.22.1.251
  15. ;; AUTHORITY SECTION:
  16. danuoyi.tbcache.com. 81834 IN NS danuoyins3.tbcache.com.
  17. danuoyi.tbcache.com. 81834 IN NS danuoyins2.tbcache.com.
  18. danuoyi.tbcache.com. 81834 IN NS danuoyins1.tbcache.com.
  19. ;; ADDITIONAL SECTION:
  20. danuoyins2.tbcache.com. 467 IN A 110.75.20.28
  21. danuoyins1.tbcache.com. 71 IN A 115.124.17.156
  22. ;; Query time: 5 msec
  23. ;; SERVER: 127.0.0.1#53(127.0.0.1)
  24. ;; WHEN: Wed Jan 16 20:47:33 2013
  25. ;; 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值