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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

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