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中服务器不能主动向浏览器发数据
压缩包:
封装文件的数据,不压缩的时候存储具体的数据