深入分析java web技术内幕----读书笔记(一)

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/61915330 一、深入web请求过程 1.B/S网络架构,服务端基于同一的http。
+关注继续查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/61915330
一、深入web请求过程
1.B/S网络架构,服务端基于同一的http。
在浏览器输入taobao.com会发生:dns解析ip——>根据ip寻找服务器(负载均衡选择服务器)--->查找数据(分布式缓存、静态文件、数据库)-->请求静态资源(图片,css等)可能会请求cdn服务器。

发起http请求的过程(dns解析过程):

1检查浏览器缓存和系统缓存
2根据dns地址接入本地域名服务器(80%在这里完成)
3到根服务器请求解析,返回一个国际顶级域名服务器(com,cn,org等),再向国际级服务器请求解析。
4返回name server域名服务器地址,解析出ip,返回ip和ttl值给dns服务器。
5ttl值控制缓存时间,按照该值缓存到本地系统缓存中,
注:name server可能有多级,负载均衡等可能影响解析过程。

3所有网络资源基于url统一资源定位符

http报文结构请参考链接:http://blog.csdn.net/a724888/article/details/61914872

以baidu.com为例




客户端请求头

服务端响应头

请求页面资源的状态码

关于304状态码
当浏览器第一次加载资源的时候,返回一般为200,意思是成功获取资源,并会在浏览器的缓存中记录下max-age,第二次访问的时候:
如果只是用浏览器打开,那么浏览器会去判断这个资源在缓存里有没有,如果有的话,会去判断max-age,看看过期没有,如果没有过期,则直接读缓存,根本不会和服务器进行交互,换句话说,断网都能打开,就和本地跑一样!如果已经过期了,那就去服务器请求,等待服务器响应,这是很费时间的,服务器如果发现资源没有改变过,那么就会返回304,告诉浏览器,我没变过,你去读缓存吧,于是浏览器也不用从服务器拉数据了,然而,等待服务器响应也是一个很要命的问题,在网速发达的今天,等一个响应,有时比下载还慢。
如果是用浏览器刷新的,那么浏览器不会去判断max-age了,直接去服务器拿,如果服务器判断资源没变过,则还是会返回304,和上面是一样的,所以刷新一下,其实很可怕,等于把所有的资源都要去服务器请求一边,问问服务器我过期了没有。
综上,尽量减少网页的资源数量!尽量合并JS CSS 图片!响应速度将会猛增!
当今,响应速度比网速重要!!

4、ctrl+f5刷新会重新向服务器请求页面而不会使用缓存,是因为在http请求头上加了一些请求项。


5、cache control会优先覆盖expires等字段。


5、CDN工作机制


负载均衡:
1链路负载均衡
2硬件负载均衡
3软件负载均衡
有关负载均衡的文章请参考链接:http://blog.csdn.net/a724888/article/details/61915986

也可以参考:
http://blog.csdn.net/a724888/article/details/61915442
http://blog.csdn.net/a724888/article/details/61915564
http://blog.csdn.net/a724888/article/details/61915866
http://blog.csdn.net/a724888/article/details/61915876
参考《深入分析java web技术内幕》这本书,强烈推荐。
文章为原创,请尊重作者劳动成果。
转载请注明文章地址:http://blog.csdn.net/a724888/article/details/61915330



相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
10月前
|
设计模式 存储 Java
《深入分析Java Web技术内幕》深入之后的理解
## 0.前言 近期阅读了《深入分析Java Web技术内幕》这本书,书中涉及的知识点非常全面,让我对Java Web相关技术有了更加全面的认识,受益匪浅。这里跟大家分享下本人深入后印象比较深刻的几个点。 ## 1.NIO (Non-blocking IO) ### 1.1同步异步、阻塞非阻塞 - I/O交互中经常涉及同步/异步,阻塞/非阻塞。 - 要注意这两个是不同纬度
《深入分析Java Web技术内幕》深入之后的理解
|
存储 设计模式 安全
深入分析Java Web -- cookie和session
深入分析Java Web -- cookie和session
164 0
|
Web App开发 Java 程序员
【深入分析Java Web】HTTP解析-常见请求头/响应头/状态码
【深入分析Java Web】HTTP解析-常见请求头/响应头/状态码
204 0
【深入分析Java Web】HTTP解析-常见请求头/响应头/状态码
|
缓存 Java 数据格式
深入分析Java Web技术内幕(三)
Java 的I/O类库的基本结构 基于字节操作的I/O接口:inputStream和OutputStream 基于字符操作的I/O接口:Writer和Reader 基于磁盘操作的I/O接口:File 基于网络操作的I/O接口:Socket 前两组主要是传输数据的数据个数,后两组主要是传输数据的方式。
1025 0
|
缓存 网络协议 Java
深入分析Java Web技术内幕(二)
DNS域名解析 第一步:浏览器检查缓存中有没有这个域名对应的解析过的IP地址,有则解析结束。 第二步:如果用户的浏览器缓存中没有,浏览器会查找操作系统缓存中是否有这个域名对应的DNS解析结果。
977 0
|
存储 网络协议 Java
深入分析Java Web技术内幕(一)
B/S架构 优点: 1. 客户端使用统一的浏览器。浏览器的交互特性使得用户使用它非常便捷 2. 服务器端基于统一的HTTP。
1069 0
|
Web App开发 监控 网络协议
关于Web事务响应时间的细分以及深入分析
对于loadrunner而言,response time只反映了传输时间和系统处理事务的时间,而客户的浏览器从接收完所有字节开始到浏览器加载完所有元素、运行完所有js,呈现给用户的这段时间loadrunner是不统计的,这部分属于页面前端性能,需要通过前端工具辅助分析。
1054 0
|
存储 Java 程序员
深入分析java web技术内幕----读书笔记(六)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/63683030 这位大侠,这是我的公众号:程序员江湖。
|
Web App开发 算法 Java
深入分析java web技术内幕----读书笔记(四)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/63253036 JVM内存管理 1物理内存和虚拟内存。
|
Web App开发 Java
深入分析java web技术内幕----读书笔记(三)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a724888/article/details/62421108  claasloader读书笔记 claasloader 1、classloader将class加载到jvm中。
相关产品
云迁移中心
推荐文章
更多