浅谈web请求过程--《深入分析Java_Web技术内幕》试读

       网络在生活中无处不在,购物、看书、浏览新闻、聊天,我们几乎把大部分的时间都用在了网络上。那么,当你输入一个网址开始浏览的时候,你有想过这个url请求的处理过程么?

 

       工作之中,无论是在做web安全,还是做网站性能,对于上面的问题,都要有一个基本的认识。本书的试读章节详细的介绍了这个web请求过程。

 

       当一个用户在浏览器里输入一个个URL 时,将会发生很多操作。首先它会请求DNS 把这个域名解析成对应的IP 地址,然后根据这个IP 地址在互联网上找到对应的服务器,向这个服务器发起一个get 请求,由这个服务器决定返回默认的数据资源给访问的用户。在服务器端实际上还有很复杂的业务逻辑:服务器可能有很多台,到底指定哪台服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求;还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里;当数据返回浏览器时,浏览器解析数据发现还有一些静态资源(如CSSJS 或者图片)时又会发起另外的HTTP 请求,而这些请求很可能会在CDN 上,那么CDN 服务器又会处理这个用户的请求,大体上一个用户请求会涉及这么多的操作。每一个细节都会影响这个请求最终是否会成功。

 

       所以尽管我们看到的是发出一个url,最终返回一个网页,但是中间的过程却是很复杂的,涉及着http协议、dns解析、cdn工作等一系列服务单元和处理。

 

       我对于web安全方面关注的更多一些,所以我在这就谈谈http协议的相关内容。

       HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

 

       为了更好的了解http协议,我们可以用telnet并打开回显功能,来观察http协议的通讯过程。

比如说我们举个简单例子:

 

1、打开telnet

1.1 打开telnet

运行-->cmd-->telnet

 

1.2 打开telnet回显功能

set localecho

 

2、连接服务器并发送请求

2.1 open

www.guet.edu.cn

80  //注意端口号不能省略

 

    HEAD /index.asp HTTP/1.0

    Host:www.guet.edu.cn

   

   /*我们可以变换请求方法,请求桂林电子主页内容,输入消息如下*/

    open

www.guet.edu.cn

80

  

    GET /index.asp HTTP/1.0  //请求资源的内容

    Host:www.guet.edu.cn 

 

2.2 open

www.sina.com.cn

80  //在命令提示符号下直接输入telnet

www.sina.com.cn

80

    HEAD /index.asp HTTP/1.0

    Host:www.sina.com.cn

 

3 实验结果:

 

3.1 请求信息2.1得到的响应是:

 

HTTP/1.1 200 OK                                              //请求成功

Server: Microsoft-IIS/5.0                                    //web服务器

Date: Thu,08 Mar 200707:17:51 GMT

Connection: Keep-Alive                                

Content-Length: 23330

Content-Type: text/html

Expries: Thu,08 Mar 2007 07:16:51 GMT

Set-Cookie: ASPSESSIONIDQAQBQQQB=BEJCDGKADEDJKLKKAJEOIMMH; path=/

Cache-control: private

 

//资源内容省略

 

3.2 请求信息2.2得到的响应是:

 

HTTP/1.0 404 Not Found       //请求失败

Date: Thu, 08 Mar 2007 07:50:50 GMT

Server: Apache/2.0.54 <Unix>

Last-Modified: Thu, 30 Nov 2006 11:35:41 GMT

ETag: "6277a-415-e7c76980"

Accept-Ranges: bytes

X-Powered-By: mod_xlayout_jh/0.0.1vhs.markII.remix

Vary: Accept-Encoding

Content-Type: text/html

X-Cache: MISS from zjm152-78.sina.com.cn

Via: 1.0 zjm152-78.sina.com.cn:80<squid/2.6.STABLES-20061207>

X-Cache: MISS from th-143.sina.com.cn

Connection: close

 

 

失去了跟主机的连接

 

 

上面就是http协议通讯的过程,我们可以看到相应的一些报头信息,从而更清楚明白的了解http协议。

 

除去http协议,我最感兴趣的便是负载均衡工作,因为在工作中网站流量过大时,必然需要上CDN(虽然成本略高~呵呵),但其实我对其工作原理并不甚了解。读完本章了解到CDN的工作原理如下:

 

一个用户访问某个静态文件(如CSS 文件),这个静态文件的域名假如是cdn.taobao.com,那么首先要向Local DNS 服务器发起请求,一般经过迭代解析后回到这个域名的注册服务器去解析,一般每个公司都会有一个DNS 解析服务器。这时这个DNS 解析服务器通常会把它重新CNAME 解析到另外一个域名,而这个域名最终会被指向CDN 全局中的DNS 负载均衡服务器,再由这个GTM 来最终分配是哪个地方的访问用户,返回给离这个访问用户最近的CDN 节点。

拿到 DNS 解析结果,用户就直接去这个CDN 节点访问这个静态文件了,如果这个节点中所请求的文件不存在,就会再回到源站去获取这个文件,然后再返回给用户。

 

 

这本书原理讲的非常清晰透彻,也期待本书中其他更为详尽的技术框架原理介绍,相信对于每个人都能学到很多知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《Android技术内幕》是一本深入介绍Android系统的书籍,适合有一定编程经验和对Android开发有兴趣的读者。通过阅读这本书,你将能够更全面地了解Android系统的内部工作原理和技术细节。 书中首先介绍了Android系统的整体架构,包括四个主要的层次:应用层、应用框架层、系统运行库层和Linux内核层。了解这些层次的功能和相互之间的协作,有助于读者理解Android应用的开发和运行过程。 其次,书中详细介绍了Android应用的四大组件:活动、服务、广播接收器和内容提供器。每个组件的生命周期、工作原理和使用方法都有详细解释,读者可以通过学习这些知识来编写更高效、稳定的Android应用。 此外,书中还深入探讨了Android应用的界面设计、数据存储、网络通信、多媒体处理等方面的技术。读者可以了解到如何使用Android提供的各种API和框架来实现这些功能,同时也能了解到Android系统背后的工作机制。 《Android技术内幕》还介绍了Android系统的性能优化、内存管理、安全机制等方面的内容。这些知识对于提高应用的运行效率、保证数据安全至关重要,同时也是成为Android开发高手的必备知识。 总之,如果你对Android开发有兴趣,想要更全面地了解Android系统的内部细节和技术原理,那么《Android技术内幕》是一本不可错过的好书。通过阅读这本书,你可以提高自己的开发能力,写出更高质量的Android应用。 ### 回答2: 《Android技术内幕》是一本深入探讨Android系统背后原理和机制的图书。阅读这本书可以帮助读者更深入地理解Android系统的运作机制和底层原理。 这本书的试读部分使读者能够初步了解Android操作系统的核心组件,包括进程、应用、资源和控制。试读还介绍了Android系统架构,以及与之相关的关键技术,如Binder、Handler和消息传递机制。这些特性和技术是Android系统正常运行的关键。 通过阅读这本书,读者可以了解Android系统的安全性和权限管理机制。试读揭示了Android系统如何处理应用程序之间的交互和通信。此外,这本书还涵盖了Android系统的内存管理和垃圾回收机制。 《Android技术内幕试读还介绍了Android系统的性能优化技巧和调试方法。读者可以学习到如何通过优化应用程序的结构和代码来提高其性能,以及如何使用工具来调试和分析应用程序的运行情况。 总体而言,阅读《Android技术内幕试读可以帮助开发者更全面地了解Android系统的运作原理和关键技术。这本书提供了深入的知识和技巧,使读者能够更好地开发和优化Android应用程序。无论是对于初学者还是有经验的开发者来说,这本书都是一本有价值的参考资料。 ### 回答3: 《Android技术内幕》是一本深入讲解Android系统架构和原理的书籍。作者对Android的各个组件进行了详细的介绍和解析,包括应用层、应用框架、系统服务、硬件抽象层等等。从这本书中,我读到了很多我之前不曾了解的知识。 首先,这本书详细解析了Android的应用程序编写和运行原理。作者从应用程序启动、Activity的生命周期、应用程序组件之间的通信等方面进行了讲解。通过阅读这些章节,我对Android应用程序的整体工作流程有了更为清晰的认识。 其次,这本书还介绍了Android系统的内存管理和性能优化策略。我学到了Android系统是如何管理应用程序的内存,并对内存进行回收和优化的。除此之外,作者还介绍了一些常见的性能问题和解决方案,帮助开发者提升应用程序的性能。 此外,《Android技术内幕》还详细介绍了Android的通信机制、数据存储和多媒体处理等重要内容。这些章节让我对Android系统的各个方面有了更为全面的了解。书中还附有大量的示例代码和实际案例,使我更好地理解了书中的概念和原理。 总的来说,《Android技术内幕》是一本非常值得阅读的Android技术书籍。无论是对于初学者还是有一定经验的开发者,这本书都能够帮助他们更深入地理解Android系统的工作原理和架构,并提供一些实用的开发技巧和优化策略。通过阅读这本书,我对Android开发有了更深入的认识,并且可以更好地应用这些知识来提升自己的开发能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值