浅谈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 页面当时跳转

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

猜你喜欢

转载自www.cnblogs.com/MyJavaStudy/p/9116773.html