Http协议及Tomcat服务器

作者: 明天你好向前奔跑 | 来源:发表于2017-05-23 23:32 被阅读0次

一、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

相关文章

  • Http协议及Tomcat服务器

    一、http协议 http协议 它其实就是约定了客户端和服务器端在执行网络交互动作的时候一种规则。 执行http请...

  • Tomcat和Nginx

    Tomcat架构和原理剖析 TPC/IP Http协议 浏览器访问服务器使用HTTP协议,Http是应用层协议,定...

  • 深入拆解Tomcat&Jetty(二)

    HTTP协议必知必会 Tomcat和Jetty本身就是一个HTTP服务器+Servlet容器,所以了解HTTP协议...

  • day01

    Java Web编程 Tomcat 服务器 是 Apache 提供的 Web Server, 可以实现Http协议...

  • 拉勾 2-1 tomcat / nginx 笔记

    Tomcat 系统架构与原理剖析 注意:浏览器访问服务器使⽤的是Http协议,Http是应⽤层协议,⽤于定义数据通...

  • 05—tomcat & nginx

    Tomcat是⼀个Http服务器(能够接收并且处理http请求,所以tomcat是⼀个http服务器) HTTP ...

  • 02-25星期一 随堂笔记

    Java Web掌握什么? 1.网络通信协议:http2.服务器:Tomcat jetty weblogic ng...

  • tomcat服务器和HTTP协议

    第1章WEB服务器和HTTP协议的由来 我们学会制作简单页面,我们学会简单操作数据MySQL,那么如何让在用户这一...

  • Tomcat、HTTP协议

    一、Tomcat服务器 tomcat软件使用的常见问题 1)闪退问题 原因:tomcat软件是java语言开发的。...

  • Http 长连接、短连接、长轮询、短轮询

    HTTP概述 HTTP协议用于约定服务端(如Web服务器Tomcat、IIS)和客户端(如浏览器、APP)通信的消...

网友评论

    本文标题:Http协议及Tomcat服务器

    本文链接:https://www.haomeiwen.com/subject/wkfnxxtx.html