zoukankan      html  css  js  c++  java
  • 浅谈tomcat和http协议

    两种架构介绍
    C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国Borland公司最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。
    c/s 客户端和服务器 b/s 浏览器和服务器
    两种架构的比较
      bs 优势 更新比较方便

         劣势 服务器压力偏大 交互性要差一些
              cs  优势 服务器压力偏小,交互性要好一些
         劣势 更新不方便

    web 网页网站的意思,学习javaWeb 就是用java写web

    web包含2类资源的
           静态资源(不变的资源)
          html js css 图片 视频
      动态 资源
        数据实时变化的资源
        在java 可以通过jsp serveet去开发动态网页

    常见的动态网页开发技术(了解下)
        php 用于中小型网站,开发速度比较快的
        .net c#
        java 用于大型网站 开发速度没有那么快
        ruby

    当我们在浏览器的的地址输入来输入一串网址时   都做了些什么事情

    如:http://localhost:8080/

    1  浏览器 先将域名转化成ip地址  (这个过程分两步完成   首先  会在计算机本地的hosts文件中找域名对应  的ip    如果在本地未找到对应的域名   那就到dns  服务器中去找   将对应的域名转化成ip地址)

    2  获得ip地址后   就能找到网络中的具体的计算机了

    3  根据端口 找到对应计算机的 对应端口中的程序,

    常见的服务器
        tomcat apache 只支持jsp/servlet规范   免费
        weblogic bea 被oracle收购了 收费的 支持全部规范
        websphere ibm 收费的 支持全部规范

    tomcat服务器目录结构
        bin 执行命令 (开启服务器 startup.bat 关闭服务器shutdown.bat)
        conf 配置文件
        logs 日志文件
        webapps 我们的web应用
        work tomcat工作的时候产生的文件
        lib tomcat的一些类库

    tomcat服务器部署遇到的问题
        1端口被占用
          java.net.BindException: Address already in use: JVM_Bind <null>:8080

          如果我们没有打开tomcat 却提示端口先用,一般有2个解决方案
              1修改我们的tomcat端口
                  在conf-->server.xml
                      <Connector port="8080" protocol="HTTP/1.1"
                            connectionTimeout="20000"
                                  redirectPort="8443" />
              2找到占用该端口的程序
                netstat -ano 找到pid 去人任务管理器关掉

    eclipse 集成tomcat

      1  显示server控制台 么有显示的话 windows --> show view ->others -->servers
      2  在该控制台 右键 new --》server
      3  在 apache 下选择对应的tomcat版本
      4  选择需要发布的应用 (add  and remove)

    http协议

      中文:超文本传输协议      浏览器和web服务器之间通讯,使用的是http协议。

    HTTP协议永远都是客户端发起请求,服务器回送响应。见下图:(图片来自网络   侵删)
       

    1.4 工作流程

    一次HTTP操作称为一个事务,其工作过程可分为四步:

    1)首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

    2)建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

    3)服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

    4)客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。

    http特征:

    1默认端口 80
    2底层是基于tcp(三次握手)
    3是基于请求 响应模型的一种协议。
    一次请求对应一次响应。必须先有请求 再有响应。

    http协议1.0
      * 链接后,只能获取一个web资源。
      * 链接后,发送请求,服务器做出响应,链接立即断开。
    http协议1.1(使用)
      * 链接后,只能获取多个web资源。
      * 链接后,不会马上断开。

    常见的请求方式 有 get post delete put
    get post有啥区别?
    get: get 长度较短   不安全,因为会在url上显示具体的路径
    post:  post 长度没有限制,POST的数据不会显示在 URL 中  所以相对安全。

    请求:

      请求头
        * If-Modified-Since 必须和响应头信息一起来完成控制本地的缓存。
        * Referer 当前的网页的来源。(防止盗链)a网页访问b网页 b的Referer就是a网页的地址
        * User-Agent 判断浏览器的版本(文件下载的时候)
      请求体
        放post请求的参数

    响应 (响应行 响应头 响应体)
      响应行(协议版本 状态码)

        200  请求成功
        302 重定向
        304 访问本地缓存
        404 找不到
        500 服务器内部错误

    响应头

        Content-Type: text/html; charset=GB2312 (响应的文本格式和字符编码格式)
        Content-Disposition: attachment; filename=aaa.zip
        这三个东西能够禁止缓存。(要一起设置哈)
            Expires: -1
            Cache-Control: no-cache
            Pragma: no-cache
        location 跟302状态码一起完成重定向
        Refresh 页面当时跳转

    响应体:服务器返回给客服端的数据,

  • 相关阅读:
    api1
    录像时调用MediaRecorder的start()时发生start failed: -19错误
    继承AppCompatActivity的Activity隐藏标题栏
    Android 6.0 运行时权限处理完全解析
    Android开发用过的十大框架
    Lite Your Android English
    2015最流行的Android组件、工具、框架大全
    C#调用C++函数入口点的问题 z
    C#调用C++的DLL函数另一则(delegate) z
    C#调用C++编写的DLL函数, 以及各种类型的参数传递 z
  • 原文地址:https://www.cnblogs.com/MyJavaStudy/p/9116773.html
Copyright © 2011-2022 走看看