Http协议及Tomcat服务器

一、http协议

  • http协议

它其实就是约定了客户端和服务器端在执行网络交互动作的时候一种规则。 执行http请求的时候,遵守的一种规范

http://www.baidu.com / 
  • http协议版本

使用最广泛的是1.1的版本。 它是一种请求 - 响应 模型的协议。

1.0
    
    请求 - 响应完毕后,连接关闭  , 如果还想接着请求,必须得重新连接

1.1

    请求 - 响应完毕后,连接未关闭 ,还可以继续发起请求

Http请求背后细节

http协议传输的数据包含三个部分 , 信息行 、 信息头 、 信息体

* 请求 

    请求行 

    请求头

    请求体

* 响应

    响应行

    响应头

    响应体

GET请求

提交的数据:
Get请求
请求行 : 
    GET /LoginDemo/login?username=admin&password=123456 HTTP/1.1
    表示使用Get请求 , 表示请求什么路径地址  ,表示使用什么版本的协议

请求头 

    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
    Referer: http://localhost:8080/LoginDemo/login.html
    Accept-Language: zh-CN
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
    Accept-Encoding: gzip, deflate
    Host: localhost:8080
    Connection: Keep-Alive


    Accept : 声明客户端可以接收什么类型的数据
    Referer : 表示请求从哪里过来的
    Accept-Language  : 表示客户端支持的语言
    User-Agent  : 表示客户端的信息
    Accept-Encoding  : 表示客户端支持的压缩格式
    Host : 表示主机地址
    Connection  : 表示连接状态。
    
请求体:

    GET方式的请求,没有请求体。 因为数据都是拼接到了地址上去了。


    获取到的数据: 
Get响应.png
响应行

    HTTP/1.1 200 OK

    表示服务器也支持1.1的版本协议 , 对这次请求处理的状态码是200 ,OK 

响应头

    Server: Apache-Coyote/1.1  : 服务器版本
    Content-Length: 75  : 返回的数据长度
    Date: Sun, 21 May 2017 07:09:28 GMT  : 响应时间

响应体

    login failed ~ please use  username : itheima , password : 10086 try again~

POST请求

提交的数据

Post请求.png
请求行

    POST /LoginDemo/login HTTP/1.1  
    意思和get请求的意思一样,只不过这里的地址再也不跟数据了。

请求头

    Accept: application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
    Referer: http://localhost:8080/LoginDemo/login.html
    Accept-Language: zh-CN
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
    Content-Type: application/x-www-form-urlencoded
    Accept-Encoding: gzip, deflate
    Host: localhost:8080
    Content-Length: 29
    Connection: Keep-Alive
    Cache-Control: no-cache

    Content-Type :  其实就是说明提交上去的数据是什么类型数据 。  是一个经过url编码的form表单数据
    Content-Length :  提交的数据长度
    Cache-Control : 表示再次请求的时候,是否读缓存。 

请求体

    username=itheima&password=123

    是以流的形式写给服务器的。 

响应数据

Post响应.png
    响应行

    响应头

    响应体

        HTTP/1.1 200 OK
        Server: Apache-Coyote/1.1
        Content-Length: 75
        Date: Sun, 21 May 2017 07:32:12 GMT
        
        login failed ~ please use  username : itheima , password : 10086 try again~

GET 和 POST方式的区别

  • GET

    1. 它的地址会带上数据, http://www.HiWeb.com?name=aa&age=18

    2. 能够带的数据有限制。

    3. 由于数据会拼接到地址栏上面,所以不安全

  • POST

    1. 它的地址不带数据,就是很干净的地址而已。

    2. 带的数据没有限制。 (因为数据是以流的方式写过去。)

    3. 由于数据没有拼接,所以数据比较安全

    4. 额外多两个头字段 Content-Type Content-Length.

软件架构

  • C/S架构

    client【客户端】 / server【服务器端】

    如: QQ 、微信、 迅雷 、 LOL

必须得安装一个客户端,才能和服务器对接。

优点:

    1.  视觉比较炫酷 、 用户体验好
    2.  一部分资源|数据放在了本地 、减轻服务器压力

缺点: 

    1. 占用本地硬盘空间
    2. 更新比较困难、 服务器只要一更新,客户端也得跟着更新
    3. 平台、系统环境的限制
  • B/S架构

    browser【浏览器】 / server【服务器端】

    如: 网页游戏 、 网页QQ 、

通过浏览器来和服务器对接

优点:

    1. 不用安装 、只要有浏览器就行。 

    2. 一般也不用做更新。 

    3. 不受平台限制 、 不占用本地的空间。


缺点:


    1. 用户体验不好。  比较卡。 

    2. 服务器压力比较大、因为所有的资源都放在服务器。 

Web资源

就是网络上的任意资源都可称之为web资源 、 就是服务器里面所有东西,都可以看做是web资源。

  • 静态资源

不管什么时候来,什么情况下见到的数据永远不变。 图片、 html网页、 音乐、 ....

  • 动态资源

根据不同的请求情况 、不同的时机、 显示出来的数据内容不一样、 那么这些产生变化的数据就称之为动态资源。 jsp / servlet

常见的服务器软件:

Tomcat  : Apache 提供的一个免费小型服务器软件 , 支持JSP/Servlet 规范

WebLogic  : Bea公司提供的收费大型服务器软件 , 支持EE的所有规范

WebSphere : IBM公司收费大型服务器软件 ,  支持EE的所有规范

JBoss  :  一个基于J2EE开放源码的服务器软件 核心不支持 JSP/Servlet ,一般与tomcat 或者 jetty配合使用

安装Tomcat

1. 解压 

2. 进入tomcat /bin  , 点击startup.bat

3. 如果见到一闪而过的情形, 那么打开dos窗口,然后拖拽startup.bat进去后,回车,即有提示,一般都是没有配置环境变量  JAVA_HOME   CATALINA_HOME : 其实就是tomcat的根目录路径。

4. 配置好之后,在执行即可

5. 打开浏览器,然后输入地址  http://localhost:8080,页面成功显示即为安装成功

Tomcat目录解释

Tomcat目录.png
backup : 备份
##bin : 启动和停止的指令
##conf : 配置

    server.xml  web.xml catalina
lib : tomcat运行必须的jar
logs : tomcat运行的日志
temp : 临时文件
##webapps : 项目发布的地方,一般配合eclipse使用 。 
work : 这里是存放jsp 翻译成的java文件  --- class文件
##wtpwebapps : 这是eclipse工具默认发布项目存放的位置。 与上面的webapps 意思一样。

新建Web项目

1. 修改工作空间编码 为 UTF-8

2. 配置tomcat环境 。 以后只要在这里运行项目,那么项目就会自己发布到tomcat里面。


3. 新建动态web工程

4. 在webContent下面新建一个html网页

5. 右键工程  --- run on server

6. 在浏览器里面访问该网页 ,路径如下:

    http://localhost:8080/项目名/资源名

    http://localhost:8080/HiWeb/hi.html
  • run as Server 背后做了什么工作?

对我们的项目进行编译处理(java) ,然后拷贝项目到 tomcat根目录\wtpwebapps 目录下。

localhost : 本机

8080 : 端口

localhost:8080 : 找我们这台电脑上端口号是8080 的那一个软件 tomcat

http://localhost:8080/HiWeb/hi.html : 找到tomcat 位置后,进入那个默认的目录 wtpwebapps 里面有一个文件夹 HiWeb 文件夹里面有一个文件 hihtml

得出一个结论:

一个项目其实就是tomcat\wtpwebapps | webapps 下面的一个文件夹。 

http://localhost:8080/文件夹名字/资源名

发布Web项目

  • 问题 : 如何发布一个项目(文件夹)到tomcat去呢 ?

1. 拷贝这个文件夹到tomcat\webapps

        访问路径 : localhost:8080/文件夹名称/文件名称 即可 

2. 设置虚拟路径

a . 在tomcat /conf/server.xml Host标签里面,写上以下内容

虚拟路径1.png
             <!-- 
             http://localhost:8080/HiWeb02/icon_13.jpg
             docBase : 项目路径
             path : 就是这个项目映射出来的路径,这个路径并不存在,所以称之为虚拟路径 -->
            <Context docBase="D:\img08" path="/HiWeb02"/>

b . 在 tomcat / conf/catalina/localhost设置

虚拟路径2.png
            1. 在该目录下,新建一个文件heima13.xml,这个文件必须是xml文件。 文件的名称就是我么你的虚拟路径, 当然可以随便写。
            2. xml的文件内容如下: 

                <?xml version="1.0" ?>
                <Context docBase="E:\html\"/>

            3. 那么文件的名称就是设置的虚拟路径 ,访问的格式如下: 

                http://localhost:8080/文件名/资源名称

                http://localhost:8080/heima13/aa.txt
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,408评论 19 139
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 12,686评论 6 152
  • Http协议详解 标签(空格分隔): Linux 声明:本片文章非原创,内容来源于博客园作者MIN飞翔的HTTP协...
    Sivin阅读 10,607评论 3 82
  • 一.Web概述 1.Web发展历史 原始年代1990-1992:1990年,HTML标记语言的出现标志Web开发时...
    贾里阅读 5,129评论 0 5
  • 今天是破壳日真正的满20岁 离过年还剩20% 碎碎念 总是被说长不大 还是那样 也会说别人 你怎么不变化 被侄女生...
    DomyL阅读 1,469评论 0 0