读《深入分析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 命令可以分析解析过程

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows mobile多国语言实现[转]

介绍一种多国语言的实现办法&#xff0c;这也是微软推荐的方式&#xff0c;打开windows mobile下的windows目录可以看到有很多以MUI为后缀名的文件&#xff0c;例如shellres.dll.0804.mui、shell.dll.0804.mui。。。。。。我们可以用eXeScope.exe或者resources hacker这样的文件…

RTSP协议基本分析

目录一、介绍二、RTSP与HTTP三、RTSP推流基本过程1、OPTION 查询服务器端可用方法1.1、Client 请求1.2、Server 回复2、ANNOUNCE 发送媒体描述信息2.1、Client 请求2.2、Server 回复3、SETUP建立RTSP会话3.1、Client 请求&#xff08;视频流&#xff09;3.2、Server 回复&#…

找取照片上的25个特征点,并保存结果

找取照片上的25个特征点&#xff0c;并保存结果 import numpy as np import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一个参数为选择照片的路径&#xff0c;注意照片路径最后一个为正斜杠其他都为反斜杠…

nutsdb与mysql_分享下 nutsdb 单机 1 亿、10 亿数据实测

大家好&#xff0c; 想给大家分享下我最近为 nutsdb 做的数据测试。测试项目起因事情起因是这个 issue &#xff0c;简单说就是内存高了&#xff0c;不够用了。可能很多人不知道 NutsDB。简单介绍下&#xff0c;NutsDB 是我几个月以前开源的一个 Go 语言编写的内嵌型 KV 数据库…

java 方法 示例_带有示例的Java EnumSetSupplementOf()方法

java 方法 示例EnumSet类complementOf()方法 (EnumSet Class complementOf() method) complementOf() method is available in java.util package. clipartOf()方法在java.util包中可用。 complementOf() method is used to contain all the elements of this EnumSet that are…

在需要时开启Perl新特性

从5.10开始&#xff0c;新特性必须开启才能使用。Perl默认不启用新特性保持向后兼容。 如果想启用新特性&#xff0c;可以使用新的-E开关。打开所有的新特性。 % perl5.10.1 -E say.pl #开启5.10.1 版本的所有新特性 在源代码中使用 use 指令之后指定perl版本号就可以了。 use …

P2P技术详解(一):NAT详解——详细原理、P2P简介

目录1. IPv4协议和NAT的由来2. NAT的工作模型和特点2.1、NAT的概念模型2.2、一对一的NAT2.3、一对多的NAT2.4、按照NAT端口映射方式分类2.4.1全锥形NAT2.4.2限制锥形NAT2.4.3端口限制锥形NAT2.4.4对称型NAT3. NAT的限制与解决方案3.1、IP端到端服务模型3.2、NAT的弊端3.3、NAT穿…

决定孩子命运的八大关键问题

你可以不是天才&#xff0c;但你可以是天才的父母&#xff01;树立做父母正确的家庭教育观念&#xff0c;为孩子建造一个良好的人生平台&#xff0c;让孩子有很好的人格修养&#xff0c;懂得做人&#xff0c;懂得成功的真正含义。简单方便&#xff0c;容易操作&#xff0c;适合…

java calendar_Java Calendar internalGet()方法与示例

java calendar日历类internalGet()方法 (Calendar Class internalGet() method) internalGet() method is available in java.util package. internalGet()方法在java.util包中可用。 internalGet() method is used to get the value of the given field(fi) of this Calendar …

显示照片的二维直方图

显示照片的二维直方图 import cv2 from matplotlib import pyplot as plt img cv2.imread(E:\Python-workspace\OpenCV\OpenCV/water1.png,1)#第一个参数为选择照片的路径&#xff0c;注意照片路径最后一个为正斜杠其他都为反斜杠&#xff1b;第二个参数&#xff0c;其中1表示…

周五怎么表示 mysql_完美起航-MySQL找每个月最后一个星期五--函数定义与使用

数据库作业有一道题是这样子的&#xff1a;有一张名叫emp的表记录员工信息&#xff0c;其中有如下字段 HIREDATE 表示员工被雇用的日期&#xff1a;然后问题是这样的&#xff1a;q7.Show details of employee hiredates and the date of their first payday.(Paydays occur on…

要想能安心,必须先死心。

其实&#xff0c;不论是感情&#xff0c;还是学习、工作还是生活&#xff0c;不都是如此&#xff1f;曾经年少怀抱一个名校梦&#xff0c;如果高考不成功&#xff0c;那么你一定会选择考研让自己死一次心&#xff1b;小时候特别喜欢 某个职业&#xff0c;长大了你抛弃所有机会追…

silverlight学习总结【完】

以下内容是个人理解&#xff0c;不保证正确性。且假设使用C#&#xff0c;并且有一定的相关知识和XML基础。 silverlight是什么&#xff0c;能做什么 silverlight用XAML来做前端界面&#xff0c;用.NET或者JS作为程序脚本支持&#xff0c;在浏览器内外运行的应用。可以认为和FLA…

P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

目录1、内容概述2、反向链接技术&#xff1a;一种特殊的P2P场景&#xff08;通信双方中只有一方位于NAT设备之后&#xff09;3、基于UDP协议的P2P打洞技术详解3.1、原理概述3.2、典型P2P情景1&#xff1a; 两客户端位于同一NAT设备后面&#xff08;即相同内网中&#xff09;3.3…

Java Byte类的compareTo()方法和示例

简短的类compareTo()方法 (Short class compareTo() method) compareTo() method is available in java.lang package. compareTo()方法在java.lang包中可用。 compareTo() method is used to check equality or inequality for this Byte object against the given Byte objec…

显示照片的RGB直方图

显示照片的RGB直方图 import numpy as np import cv2 as cv from matplotlib import pyplot as plt img cv.imread(E:\Python-workspace\OpenCV\OpenCV/BEYOND.png,1)#第一个参数为选择照片的路径&#xff0c;注意照片路径最后一个为正斜杠其他都为反斜杠&#xff1b;第二个参…

OUT还开通博客!

现在哪有人还在玩博客哦&#xff0c;哎试试&#xff0c;记录一下自己开发网站的点滴吧&#xff01;转载于:https://www.cnblogs.com/17say/archive/2013/02/18/2915125.html

网站V5的一些想法(转)

V5即将到来&#xff0c;面对“全新”的V5&#xff0c;前端这块自然也要借这次改版的机会&#xff0c;将我们前端的一些想法实践到V5中去&#xff0c;实现一次跨越。 1 尝试模块化的代码书写(html、css等) 模块化的目的是为了提高代码的重用性、扩展性、可维护性 2 文件引用使用…

mysql慢查询开启语句分析_mysql慢查询语句分析总结

我们经常会接触到MySQL&#xff0c;也经常会遇到一些MySQL的性能问题。我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题通过SHOW FULL PROCESSLIST查看问题SHOW FULL PROCESSLIST相当于select * from information_schema.processlist可以列出正在运行的连…

P2P技术详解(三):P2P中的NAT穿越(打洞)方案详解(进阶分析篇)

目录1、NAT和NAPT2、NAT带来的问题3、P2P通信穿越NAT的技术、方法4、NAT穿越技术1&#xff1a;应用层网关4.1、原理4.2、限制5、NAT穿越技术2&#xff1a;中间件技术5.1、原理5.2、限制6、NAT穿越技术3&#xff1a;打洞技术(Hole Punching)6.1、原理6.2、方法6.2.1NAT行为类型与…