• Java Web 基础


    写在前面:

    总结一下我认为的从零开始学习 Java Web 的基本路线:

    • Java 基础:流程控制 -> 面向对象(包括 Java语法)-> Java  集合 -> Java IO 流 -> 异常 -> 多线程 -> 网络编程 -> 反射
    • Java Web 基础:HTML/CSS/JavaScript/jQuery -> Tomcat -> XML/注解 -> Servlet -> HTTP -> Filter过滤器和监听器 -> JSP ->AJAX/JSON -> 数据库(MySQL) -> JDBC 和 DbUtils

    这篇博客只介绍C/S,B/S,HTTP协议,Web服务器原理和 Java Web 开发环境与搭建

    Web 服务器原理

    Web 包括 Web 服务器和 Web 客户端两部分。当客户端(浏览器)和 Web 服务器之间进行通信时需要用到 HTTP (超文本传输协议),Web 服务器也叫 WWW 服务器,是指驻留于互联网上某种类型计算机上的程序(服务器)。当 Web 浏览器(客户端)连到服务器上并请求文件时,服务器将处理该请求,并将文件发送到该浏览器上,附带的信息会告诉浏览器如何查看该文件(即文件类型)服务器使用 HTTP (超文本传输协议)进行信息交流,它有以下3个特点:

    • 应用层使用 HTTP 协议。
    • HTML 文档格式。
    • 浏览器采用统一资源定位器(URL) 来请求资源。
    Web 服务器可以解析 HTTP 协议。当 Web 服务器接收到一个 HTTP 请求(Request) ,会返回一个 HTTP 响应(Response) 。

    C/S 与 B/S

    网络开发中有两种开发模式:即 C/S (Client/Server 模式)和 B/S (Browser/Server 模式)。C/S 中服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。B/S 中客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、Informix或SQL Server等数据库。浏览器通过Web Server 同数据库进行数据交互。客户端需要安装专用的客户端软件。

    在传统 Web 应用程序的开发过程中,开发-个应用系统一般情况下需要以下几个步骤:客户端/服务器端软件的开发、服务器端程序的部署、客户端软件的安装,只有完成这几个步骤,用户才可以通过客户端访问服务器提供的服务。而在基于 B/S 架构的 Web 程序大开发过程中,只需要开发服务器端的功能代码,然后把服务器端的程序部署在 Web 服务器软件中即可,在部署结束之后,启动 Web 服务器,用户就可以通过浏览器访问 Web 应用程序提供的服务。

    在 C/S 和 B/S 两种架构之间,并没有严格的界限,两种架构之间没有好坏之分,使用这两种架构都可以实现系统的功能。开发人员可以根据实际的需要进行选择,例如需要丰富的用户体验,那就选择 C/S 架构,在目前的网络游戏中,基本都是选择 C/S 架构;如果更偏重的是功能服务方面的实现,就需要选择 B/S 架构,这也正是目前绝大部分管理应用系统采用的软件架构方法。

    HTTP 协议

    HTTP 协议即超文本传输协议。超文本传输协议是万维网上应用最为广泛的一种网络协议,是一个属于应用层的面向对象的协议,适用于分布式超媒体信息系统。HTTP 主要用在客户端(浏览器)和 Web 服务器之间进行通信。客户端(浏览器)和 Web 服务器之间要进行通信,首先使用可靠的 TCP 连接(默认端口为 80),然后浏览器要先向服务器发送请求信息,服务器在接收到请求信息后做出响应,返回相应的信息,浏览器接收到来自服务器的响应信息后,对这些数据进行解释执行。浏览器的每次请求都要求建立一次单独的连接, 在处理完每一次的请求后,就自动释放连接。HTTP 可以分为两部分:  HTTP 请求和 HTTP 响应。 

    HTTP 的请求格式

    <request-line>
    <headers>
    <blank line>
    [<request-body>]

    在 HTTP 请求中,第一行必须是-一个请求行(request line) ,用来说明请求类型、要访问的资源以及使用的 HTTP 版本。紧接着是一个头部(header) 小节,用来说明服务器要使用的附加信息,例如声明浏览器所用语言、请求正文的长度等。在头部之后是- -个空行,指示头部结束。在此之后可以添加任意的其他数据,称之为主体(body) ,其中可以包含客户提交的查询字符串信息。

    在 HTTP 请求中,定义了大量的请求类型,其中 GET 请求和 POST 请求是最主要的。只要在 Web 浏览器中输入一个 URL ,浏览器就将基于该 URL 向服务器发送一个 GET 请求,以告诉服务器获取并返回资源(也就是对网页的访问)。而 POST 请求在请求主体重为服务器提供了一些附加的信息。通常,当填写一个在线表单并提交时,这些填入的数据将以 POST 请求的方式发送给服务器。

    HTTP 的响应格式

     HTTP服务器接到请求后,经过处理会给予相应的响应信息,其格式与HTTP请求相似: 
    <status-line>
    <headers>
    <blank line>
    [<request-body>]
     在 HTTP 响应中与请求唯--的区别在于第一行中用状态信息代替了请求信息,状态行(status line) 通过提供一个状态码来说明所请求的资源情况。在响应信息的头部也包含很多信息,如服务器类型、日期时间、内容类型和长度等。在头部之后同样需要用一个空行指示头部结束。再接下来就是服务器返回的内容。 

    Java Web 开发环境与搭建

    网上关于 Java Web 开发环境的搭建的博文实在太多,这里就不再做多余的赘述,可参考https://blog.csdn.net/yuzhiqiang_1993/article/details/81166813

  • 相关阅读:
    QT解决方案中新建动态链接库工程,且继承于QObject,解决无法生成moc_XXX.cpp文件的问题,解决工程之间的引用问题
    MATLAB Simulink中解算器的定步长和各模块采样时间之间的关系
    simulink使用MATLAB function的端口多出入多输出,输入输出向量设置
    simulink error:Error in default port dimensions function of S-function ‘XXXXXXXXXXX’. This function does not fully set the dimensions of output port 2.
    Git 问题:SSL certificate problem: self signed certificate
    git push失败:ssh:connect to host github.com port 22:Connection timed out
    戴尔笔记本插耳机听歌暂停后继续声音突然变大
    PDF阅读器和编辑器选择
    21天战拖记——Day15:填坑:行动任务项目的区别(2014-05-18)
    21天战拖记——Day14:如何养成一个习惯?(2014-05-17)
  • 原文地址:https://www.cnblogs.com/Sabrian-Liu/p/12858863.html
Copyright © 2020-2023  润新知