java web基础

软件架构:

1. C/S:Client/Server 客户端/服务器端:

  * 在用户本地有一个客户端程序,在远程有一个服务器端程序
            * 如:QQ、迅雷...
            * 优点:
                 * 用户体验好
            * 缺点:
                * 开发、安装、部署、维护麻烦

2. B/S:Browser/Server 浏览器/服务器端:

            * 只需要一个浏览器,用户通过不同的网址(URL),客户访问不同的服务器端程序
            * 优点:
                * 开发、安装、部署、维护简单
            * 缺点:
                1. 如果应用过大,用户体验可能会受到影响
                2. 对硬件要求过高

 

3. B/S架构详解

            * 资源分类:

                1. 静态资源:
                    * 使用静态网页开发技术发布资源
                    * 特点
                        * 所有用户访问,得到的结果是一样的
                        * 如:文本、图片、音频、视频,HTML,CSS,JavaScript
                        * 如果用户请求的是静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源
                2. 动态资源:
                    * 使用动态网页及时发布资源
                    * 特点:
                        * 所有用户访问得到的结果可能不一样
                        * 如:jsp/servelet,php,asp...
                        * 如果用户请求是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器
            * 我们要学习动态资源,必须先学习静态资源!
            
            * 静态资源:
                * HTML:用于搭建基础网页,展示页面内容
                * CSS:用于美化页面,布局页面
                * JavaScript:控制页面元素,让页面有一些动态的效果

 

HTTP协议

    * 概念:Hyper Text Transfer Protocol 超文本传输协议

        * 传输协议:定义了客户端和服务器端通信时发送数据的格式
        * 特点:
            1. 基于TCP/IP的高级协议
            2. 默认端口:80
            3. 基于请求响应模型:请求一次响应一次
            4. 无状态响应:每次请求之间相互独立,不能交互数据
        * 历史版本
            * 1.0:每一次请求就会建立一个新的连接
            * 1.1:服用连接


    * 请求消息数据格式

        1. 请求行

            请求方式请求url请求协议/版本
            GET /login.html HTTP/1.1.
        
            * 请求方式:
                * HTTP协议有七种请求方式,常用的有两种
                    * GET:
                        1. 请求参数在请求行中,在url后
                        2. 请求的url长度是有限制的
                        3. 不太安全
                    * POST:
                        1. 请求参数在请求体中
                        2. 请求的url是没有限制的
                        3. 相对安全


        2. 请求头:客户端浏览器告诉服务器一些信息

            请求头名称:请求头值
            * 常见的请求头:
                1. User-Agent:浏览器告诉服务器,我访问你使用的浏览器的版本信息
                    * 可以在服务器端获取该头的信息,来解决浏览器兼容问题 
                2. Referer:http://localhost/login.html
                    * 告诉服务器,我(当前请求)从哪里来
                        * 作用:
                            1. 防盗链:
                            2. 统计工作:


        3. 请求空行

            空行:用来分割请求头和请求体


        4. 请求体(正文)

            * 封装POST请求消息的请求参数
        
        *字符串格式:
        PQST /login.html HTTP/1.1
        Host: localhost
        user-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; X64; rv:60.0) Gecko/ 20100101 Firefox/60.0
        Accept: text/html , application/ xhtml+xml , application/xml;q=0.9,*/*;q=0.8
        Accept- Language: zh-CN, zh;q=0.8,zh- TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
        Accept- Encoding: gzip,deflate
        Referer:http://localhost/login.html
        Connection: keep-alive
        Upgrade- Insecure- Requests: 1
    
        username=zhangsan

 

WEB服务器原理

  我的理解为:

    1. web服务器可以接收客户端浏览器用户发来的请求然后处理请求,最后作出响应回应客户端浏览器。

    2.在服务器中可以部署web项目,让用户通过浏览器来访问这些项目

  

  查到它的工作原理:

    步骤1.连接过程。连接过程就是Web服务器和其浏览器之间所建立起来的一种连接

    步骤2:请求过程。请求过程就是Web的浏览器运用socket这个文件向其服务器而提出各种请求。

    步骤3:应答过程。应答过程就是运用HTTP协议把在请求过程中所提出来的请求传输到Web的服务器,进而实施任务处理,然后运用HTTP协议把任务处理的结果传输到Web的浏览器,同时在Web的浏览器上面展示上述所请求之界面。

    步骤4:关闭连接。关闭连接就是当上一个步骤--应答过程完成以后,Web服务器和其浏览器之间断开连接之过程。

    Web服务器上述4个步骤环环相扣、紧密相联,逻辑性比较强,可以支持多个进程、多个线程以及多个进程与多个线程相混合的技术。

 

java web开发环境与搭建

  * 常见的java相关的web服务器软件:

          * webLogic : oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
          * webSphere : IBM公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
          * JBOSS : JBOSS公司的,大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
          * Tomcat : Apache基金组织,中小型的JavaEE服务器,仅仅支持少量的JavaEE规范servlet/jsp。 开源的,免费的。

 

  * JDK

    java开发离不开JDK

    

 

       我用的是jdk1.8.0_202,具体安装配置过程就不写了,学过javase的这些应该都是基础。

  

  * Tomcat

    我用的是tomcat服务器,毕竟他免费嘛。

    

 

 

  apache-tomcat-9.0.21版本,怎么安装配置也不写了,网络上都可以查到

 

  IDEA

 

    

 

    很好用的一款java集成开发环境,安装过程也省略,网上都能找到

 

  IEDA配置tomcat

  

 

  

 

  

 

  

 

   指导本机安装的tomcat路径,配置成功过后

   

 

   以后也可以在这里增加修改一些配置

  这样就把idea和tomcat关联起来了

  还有种方法就是把web项目放到

    

 

   这个目录下,启动tomcat就可以访问web项目,但这种方式用于最终的项目部署了。

 

 

 

 

    

 

posted @ 2020-05-09 09:12  奇怪的代码  阅读(215)  评论(0编辑  收藏  举报