tomcat服务器和HTTP协议
tomcat:一个服务器的服务器软件,发布资源要用的
服务器组成:
1.服务器硬件
2.服务器软件
3.项目(一堆资源的集合)
4.资源
tomcat本身是一个java程序,必须依赖jre运行
eclipse是一个java开发软件,tomcat是一个服务器软件,不用每一次都去将项目部署到服务器,将其集成到eclipse
将tomcat集成到eclipse,window/Proferences/Server/Runtime Environments
部署项目:
在Servers下将项目add进Tomcat中
eclipse存储java文件:src bin
存储javaEE文件:src build
tomcat存储要发布的文件:webapps/项目名/资源
在eclipse中:WebContent
服务器具体概念介绍:
1.服务器硬件(PC机,专门的服务器设备,手机)
2.服务器软件(HBuilder,tomcat,数据库内置服务器等。可以将数据在网络上共享)
3.服务器软件中运行一些相关程序,可以产生一些资源
4.资源分成两种:
A:静态资源 ---- HTML页面 ---- 只要原码不修改,任何时候访问到的结果都是一样的
B:动态资源 ---- 通过程序生成HTML页面 ---- 原码不修改的情况下,不同的访问,访问的结果也不一样
在java中生成页面的程序是Servlet(服务器端的Java小程序)
客户端怎么访问服务器资源:
ip ---- 定位服务器硬件
端口号 ---- 定位服务器软件
项目名 ---- 定位服务器软件中的程序
路径 ---- 定位服务器软件中的资源
服务器:
A:存在于网络上的一台硬件
B:通过端口号定位一个程序
C:程序会将资源暴露出去,供客户端访问
一.tomcat
1.Eclipse怎么将项目发布到tomcat的?
A:在tomcat的webapps下面建一个与当前项目同名的文件夹
将项目中的webcontent下面的内容复制到当前文件夹下
B:如果在webcontent外面编写代码,这些资源是不能被发布的,只有webcontent的子级静态资源才能被浏览器直接访问
C:但是src下面的java程序不同,是可以访问的
因为项目发布时,class文件会被单独整合进webcontent/WEB-INF/classes文件夹
eclipse 的工作空间 ------- 内容与eclipse中的项目结构对应,build 文件夹存储的是 class 文件
Tomcat 的 webapps目录---- 先将build文件夹复制进 webcontent/WEB-INF 下面,然后再部署到 tomcat 当前项目下
二.HTTP协议(在请求和响应之后才产生的页面)
1.HTTP协议
协议:规则 规矩 约定,涉及多方的
HTTP协议是浏览器和服务器之间进行数据传输时,遵循的规则
2.HTTP协议只是一种理论,必须要结合具体的代码实现来理解
3.HTTP协议(超文本传输协议)
版本:1.0 ---- 每获取一个资源,都要创建并销毁一个连接
1.1 ---- 获取多个资源时,共用一个连接,效率更高
4.请求协议 ---- 浏览器向服务器发送数据时,要遵守的规则
响应协议 ---- 服务器向浏览器发送数据时,要遵守的规则
结构组成:
行
头
体
请求协议:
请求头:
refer:
产生场景:A页面跳转到B页面时,请求B页面时,会有refer,告诉B我是从哪跳过来
此步骤中A页面已经请求响应完毕,然后提交数据到服务器请求跳转到B页面,B页面发送请求
如果B页面直接请求服务器,则不会有refer
具体应用:
A:防盗链
B:网站统计
if-modified-since(了解)
A、第一次访问页面,服务器要发送html内容(浏览器本地进行缓存)以及该文件的最后修改时间,浏览器保存该时间
B、第二次以及以后访问,携带 if-modified-since 以及对应的A中的最后修改时间到服务器
C、服务器取出浏览器发送过来的时间值,和当前资源的最后修改时间进行判断
如果一样,浏览器取本地缓存,如果不一样,发送新内容到浏览器
D、结合响应的 last-modified 使用(凭直觉是如果不相等时要响应两次)
响应协议:
响应头:
location ---- 结合302使用
centent-disposition ---- 和文件下载相关
set-cookie ---- 和Cookie Session相关
refresh ----- 时间值
服务器发送该属性到浏览器,浏览器解析该属性,取出值,根据该值隔固定时间后自动刷新一次
应用场景:
一些时时变动的数据访问,比如:天气预报,股票行情
响应体:存储具体的响应数据
BS 和 CS 比较:
CS中服务器可以主动向客户端发送数据
BS中服务器不能主动向浏览器发数据
压缩包:
封装文件的数据,不压缩的时候存储具体的数据
tomcat服务器和HTTP协议的更多相关文章
- Tomcat服务器与HTTP协议
Tomcat服务器与HTTP协议 一. Tomcat服务器 1.tomcat服务器 1.web :网页,它代表的是网络上的资源.(java技术开发动态的web资源,即动态web页面,在Java中,动 ...
- 关于Tomcat服务器中的协议及请求过程
关于Tomcat服务器中采用的协议:在Tomcat的server.xml文件中可以找到如下几个Connector <!-- 1. HTTP --> <Connector port=& ...
- tomcat服务器和http协议笔试题
tomcat与web程序结构与Http协议与HttpUrlConnection 考查的知识点:tomcat服务器相关信息 1.下面关于tomcat服务器描述正确的是() (难度A) A. tomcat ...
- JavaWeb 后端 <一> 之 Tomcat服务器 - Http协议 学习笔记
1.Web开发概述 1.1服务器上的资源分类: a.静态资源:指web页面中供人们浏览的数据始终是不变.html css js 图片 多媒体 b.动态资源:指web页面中供人们浏览的数据是由程序产生的 ...
- Linux下安装Tomcat服务器和部署Web应用
一.上传Tomcat服务器
- JavaWeb开发学习(二)-配置Tomcat服务器
1. 下载Tomcat服务器 Tomcat是一个免费.开源的JavaWeb服务器. Tomcat官网是http://tomcat.apache.org/ 我使用的是版本是Tomcat7.0,下载Zip ...
- JavaWeb---总结(三)Tomcat服务器学习和使用(一)
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
- [Java Web] 6、Tomcat服务器的安装及配置以及JSP技术笔记
目录 1.Web容器简介 2.Tomcat粗介及配置粗讲 3.Tomcat服务器配置 3-1.修改端口号 3-2.配置虚拟目录 3-3.配置首页 4.JSP执行流程 5.JSP粗略了解 1 ...
- JavaWeb学习总结(二)——Tomcat服务器学习和使用(一)
一.Tomcat服务器端口的配置 Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml ...
随机推荐
- PHP 遍历目录下面的所有文件及子文件夹
//遍历文件夹下面所有文件及子文件夹 function read_all_dir ( $dir ){ $result = array(); $handle = opendir($dir);//读资源 ...
- Struts1.3——文件上传和下载
1.Struts文件上传 在Web开发中,会经常涉及到文件的上传和下载,比如在注册账户的时候,我们需要上传自己的头像等. 我们可以利用Struts很方便地实现文件的上传. 1.1 开发步骤 现在,假设 ...
- ZJUT11 多校赛补题记录
牛客第一场 (通过)Integration (https://ac.nowcoder.com/acm/contest/881/B) (未补)Euclidean Distance (https://ac ...
- Linux NIO 系列(04-3) epoll
目录 一.why epoll 1.1 select 模型的缺点 1.2 epoll 模型优点 二.epoll API 2.1 epoll_create 2.2 epoll_ctl 2.3 epoll_ ...
- java部署:CentOS 7下Tomcat安装与配置教程(Tomcat开机启动)
一.前言 1.本教程主要内容 Tomcat安装与基础配置 Tomcat开机启动配置 2.本教程适用范围与环境信息 适用范围 软件/工具 版本说明 CentOS CentOS 7 Tomcat Tomc ...
- 【Java学习笔记之一】 java关键字及作用
Java关键字及其作用 一. 总览: 访问控制 private protected public 类,方法和变量修饰符 abstract class extends final implements ...
- MVC中的自定义标签分页控件,仅供大家学习!!
public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, ...
- 面试题: nodejs 的事件轮询机制
setTimeout(function(){ console.log('setTimeout()执行了') },0) setImmediate(function(){ console.log('set ...
- python字典拼接方法
python的dict拼接有多种方法,其中一种很好用而且速度非常快: x = {**a, **b} 效果等价于: x = a.copy() x.update(b) 注意update()是没有返回值的 ...
- C# JavaScriptSerializer 自定义序列化
虽然,我个人建议使用Json.Net. 但大家需求不同.遇到一个朋友,他有个需求JavaScriptSerializer并且序列化时,隐藏基类成员. 这里我采用自定义序列化来实现: public st ...