美文网首页java web
Java Web基础回炉和提升暨文集开篇

Java Web基础回炉和提升暨文集开篇

作者: TimeReview | 来源:发表于2018-11-27 14:00 被阅读0次

    前言

    在上一个文集Java基础回炉中,回顾和深入学习了Java 基础内容,这一文集将回顾Java Web基础。首先,我们从面试题目入手,鸟瞰请求资源的整个过程,然后剖析每个步骤中的知识点,达到各个击破的效果。最后,我们会分析业界对相关步骤进行优化从而演化出来的框架技术。


    文集目录

    Java Web基础回炉和提升暨文集开篇


    1. 概述

    (1)从面试问题出发:

    在面试的过程中,面试官经常会问到一个问题。当用户在浏览器客户端地址栏中输入网站,按下enter键之后,到用户获得资源页面的整个过程经历了哪些步骤?

    例如在地址栏输入我的多作者平台网址:http://www.timereview.cn/,到获取到下面页面产生了哪些步骤?

    时光账本.png 我认为这是一个非常经典的问题,它让我们从高纬度去鸟瞰Java web的全貌,而不是一开始就死扣细节问题。

    若新手在学习Java Web开发之前把这个全局性问题弄清楚,明白在哪个步骤用到了哪些知识点,业内哪些框架对哪个过程进行了优化,这对相关知识的学习非常有指导性意义。

    (2)类比借书过程

    在用术语讲这个过程之前,我想以更加生活化的例子说明整个流程:

    大家都有借书的经历,在这个事情中,读者是资源的索取者、图书馆是资源的保存者,而书籍就是读者想要从图书馆中索取的资源。

    那随便一个人都可以去图书馆借书吗?不是的,只有持有读者证的人才能去图书馆借书。所以读者证就是读者和图书馆建立联系的载体,也就是读者和图书馆达成的约定和协议。

    好了,你有了读者证,你就有资格到任何图书馆借书吗?又不是的,你只能到读者证对应的图书馆去借书。

    然后你拿着读者证去发证的图书馆找书,你想要找到一本叫做《Java Web开发》的书籍,根据你的书籍类型应该是计算机相关的书籍,然后你就会去计算机分类区去找。

    如果这本书在图书馆里,你当然能最终借到这本书,然后美滋滋的学习,如果这本书不在或者被借走,那你就收到“sorry,404,你要的资源被外星人带走了”

    (3)真实过程

    那下面我们看看,你在互联网上获取资料,整个过程又到底经历了哪些步骤(这里我们只讲步骤,具体实现将在后面的文章中详细介绍。)

    在这件事情中,有Web浏览器、Web服务器和资源三个对象,Web浏览器是资源的索取者,Web服务器是资源的保存者,而资源通常是静态页面或动态页面。

    首先,既然你在地址栏输入了链接(URL),根据URL的内容,那么你就知道你要去哪个“图书馆”,去获取哪一本“图书”了,不过当前“图书馆”的这个名字是个别名。

    那我们如何根据别名找到它的真实名称,也就是服务器IP地址呢?这时候就要将域名的网络地址部分解析成IP了,这里就涉及到域名解析的问题,后面会详细介绍。
    https://www.cnblogs.com/gnss523-webrtc/articles/4834900.html

    找到服务器后,浏览器会尝试通过TCP三次握手和服务器建立连接,建立连接之后,浏览器根据Http规范产生请求报文并通过套接字向服务器发送。

    当Web服务器收到浏览器的数据请求后,先解析请求报文,定位请求资源。找到资源后,服务器将资源通过TCP套接字回应给客户端,由客户端读取Http报文。

    客户端浏览器会将Http报文中的响应数据进行解析,并在浏览器窗口中显示。

    综上,当你在览器地址栏键入URL,按下回车之后会经历以下流程:

    1. URL被发送至DNS 服务器, URL被域名解析软件解析,得到Web服务器IP;
    2. 根据 IP 地址和默认端口 80,浏览器三次握手和Web服务器建立TCP连接;
    3. 浏览器发出Http请求报文,报文内容包括URL中资源名称。
    4. Web服务器收到浏览器的数据请求后,先解析请求报文,根据资源名去定位请求的资源,并根据定位结果产生响应报文,并响应给服务器。
    5. 一次请求完毕,默认关闭TCP连接;
    6. 浏览器会将Web服务器响应的数据进行解析,并通过用户友好的界面进行展示。

    2.涉及知识点

    我们分析了在览器地址栏键入URL,按下回车之后发生的事情,在这个过程中涉及了许多知识,在这里罗列一下,其中的一些知识点也是后面我们需要撰文细讲的内容。

    • Web服务器
    • URL
    • DNS解析原理
    • TCP/IP协议,三次握手、四次握手
    • Http协议
    • 资源形式、服务器如何定位资源

    当然这些知识点还只是从大的角度出发,还有很多细节知识需要去掌握,但是我们先俯瞰整个流程,后面再深入相关细节。

    3.J2EE Web学习路线图

    https://blog.csdn.net/love20165104027/article/details/81271556
    上面通过面试问题出发,将浏览器客户端请求资源全过程描述了一遍,并将大的知识点整理出来了。

    这里我也将J2EE Web的知识结构图整理出来,希望让大家在初次学习或者回炉的过程中有更清晰的思路。这里要说明一点,我们会把主要精力放在Java后端开发上,所以涉及到前端的知识希望大家能自己去学习。 Java Web.png

    4. 总结

    本篇文章为Java web文集的开篇,主要从面试问题“在浏览器地址栏输入URL,按下回车键后发生了什么?”出发,粗略的介绍每一步骤发生的事情,整理了Java web基础应该学习的知识点,为后面深入具体知识做好准备。

    所以,读完这篇文章后应该知道怎么回答上述面试问题了!

    相关文章

      网友评论

        本文标题:Java Web基础回炉和提升暨文集开篇

        本文链接:https://www.haomeiwen.com/subject/xodafqtx.html