JavaWeb 后端 <一> 之 Tomcat服务器 - Http协议 学习笔记

1、Web开发概述

1.1服务器上的资源分类:

a、静态资源:指web页面中供人们浏览的数据始终是不变。html css js 图片 多媒体

b、动态资源:指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。JSP/Servlet、php、asp

下面为简单的java程序 模拟服务器提供资源 访问 本地端口1111即可得到服务器的资源

public class Myserver {
    public static void main(String[] args) throws IOException{
        ServerSocket server = new ServerSocket(1111);
        //有可能 会被占用 抛出异常
        Socket client = server.accept();
        //构建输入流;读html
        InputStream  in = new FileInputStream("f:/1.html");
        //用客户端的输出流输出出去
        OutputStream out = client.getOutputStream();
        int len = -1;
        byte b[] = new byte[1024];//缓存
        while((len= in.read(b))!=-1){
            out.write(b, 0, len);
        }
        in.close();
        client.close();
    }
}

2、Tomcat服务器

0、JavaEE规范:

JavaEE规范由JCP组织(www.jcp.org)制定和维护的。很多Java开发技术的总称。都是由抽象类和接口组成的(jar)。

常用的技术:JSP/Servlet、JPA、JTA、JNID、JDBC、JMX、JAXP、EJB等

1、常用的服务器:

WebLogic:实现了JavaEE规范,重量级的服务器,JavaEE容器。

WebSphereAS:实现了JavaEE规范,重量级的服务器,JavaEE容器。

JbossAS:实现了JavaEE规范,重量级的服务器,JavaEE容器。

Tomcat:实现了JSP/Servlet规范,轻量级的服务器,Servlet容器。

2、JSP/Servelt规范:Servlet2.5版


Tomcat的版本


Servlet/JSP版本


JDK


JavaEE


备注


Tomcat8.X


3.1/2.3


7.X


7


默认编码UTF-8


Tomcat7.X


3.0/2.2


6.X


6


ISO-8859-1


Tomcat6.X


2.5/2.1


5.X


5


用这个ISO-8859-1

 

3、安装Tomcat

解压压缩包

默认端口:8080

 

*webapps目录:该目录中有几个文件夹就说明有几个应用

4、启动:Tomcat\bin\startup.bat

找到 startup.bat双击运行 或者dom里运行 cd \  → cd Apache → cd bin →  startup.bat

没有异常,最终说明用时,证明启动成功!

 

5、启动时遇到的常见问题

a、一闪而过:原因,没有配置环境变量JAVA_HOME=C:\jdk1.7.0_45

 

b、启动过程中出现很多异常:因为端口被占用了

端口被占用了:dom 使用 netstat -a -o  检查端口的使用情况

干掉占用8080端口的进程;

更改Tomcat的默认端口:

修改 Tomcat\conf\server.xml

 

5、http协议使用的默认端口是80(上线运行)

不用加端口访问

 

注意80端口可能被占用。(Window如果装了IIS--web服务器,默认用80)

3、JavaWeb应用的目录结构(很重要,记住)

MyApp 应用名称

1.html

css\main.css

WEB-INF      必须有,大小写一致。该目录中的资源客户端无法访问的

lib   存放本应用用到的jar包。(Tomcat\lib中的jar为所有应用共享的)

classes: 存放本应用的class字节码。(优先级:classes--自己的jar---Tomcat中的jar,优先级依次降低)

web.xml 当前应用的配置文件。

4、部署JavaWeb应用到Tomcat服务器上

方式一:直接把应用拷贝到Tomcat\webapps目录中

方式二:把应用打成war包。

就可以通过服务器访问

 

5、利用MyEclipse建立JavaWeb应用并部署

1、在MyEclipse中配置Tomcat

 

2、开发目录结构和运行目录结构

5、Tomcat的组成(Tomcat独有)

通过Tomcat\conf\server.xml配置进行配置(Tomcat的核心配置文件)

l  配置虚拟目录(Context)

可以把磁盘上任意位置的文件夹当做一个应用交给Tomcat管理。

方式一:直接修改server.xml配置文件(需要重新启动Tomcat,不推荐)

方式二:在Tomcat\conf\[引擎名称]\[主机名称]\目录中,建立一个xml的配置文件,文件名就是应用的访问虚拟目录:PPP.xml

 

http://localhost/PPP/1.html

l  配置虚拟主机(Host)

一台硬件服务器上运行多个网站

域名解析:

 

 

l  配置默认端口(Connector)、默认应用、默认主页

默认端口:80。修改Tomcat\conf\server.xml,把一个Connector的端口改为80

默认应用:http://localhost

TOmcat中默认的应用webapps\ROOT

方法一:把作为默认应用的应用改为ROOT即可。

 

方式二:在Tomcat\conf\引擎名称\主机名称\ROOT.xml的配置文件

应用的默认主页:

修改web.xml

 

二、HTTP协议:必须记住(很重要)

1、HTTP协议概述

HTTP是什么?超文本传输协议。

描述客户端和服务器端的数据标准,该协议由W3C维护和管理。

版本:

HTTP1.0:每次发出请求都需要建立网络连接

HTTP1.1:(主流)在一次网络连接上发出多次请求和得到多次响应。多了一些头。

 

明确:

浏览器遇到以下标记时,会自动发出请求

 

 

2、HTTP协议的组成

2.1请求部分

2.2响应部分

3、请求部分详解

3.1请求行:

GET /app1/1.html HTTP/1.1

GET:请求方式。

常用的请求方式:GET(默认的)、POST、HEAD、OPTIONS等

GET:默认的

http://localhost:8080/app1/1.html?username=abc&password=123

提交的数据显示出来了,相对不安全,协议的第一行有长度限制,<1kb.

(有请求数据时推荐)POST:可以通过<form method=”post”/>

                    username=abc&password=123

                       提交的数据在请求正文中的,相对安全,长度没有限制

 

              /app1/1.html :请求的资源地址。(URI)

                     URL:协议+主机:端口+资源地址

                            http://localhost:8080/app1/1.html

 

HTTP/1.1:客户端浏览器使用的协议的版本。

 

 

3.2请求消息头:

作用:向服务器端传递附加信息(暗号指令)

l  Accept:告知服务器,客户端可以接受的数据类型(MIME类型)

文件系统:通过文件的扩展名区分不同的文件的。txt jpeg

MIME类型:大类型/小类型。  txt--->text/plain   html---->text/html js---->text/javascript (具体对应关系:可参考 Tomcat\conf\web.xml)

l  Accept-Encoding:告知服务器,客户端可以接受的压缩编码。比如gzip

 Accept-Language:告知服务器,客户端支持的语言。

 Referer:告知服务器,从哪个页面过来的。(作用:统计广告的投放效果;防止盗链。)

 

l  Content-Type:告知服务器,请求正文的MIME类型

默认类型:application/x-www-form-urlencoded(表单enctype属性的默认取值)

具体体现:username=abc&password=123

其他类型:multipart/form-data(文件上传时用的)

l  If-Modified-Since:告知服务器,当前访问的资源,缓存中的文件的最后修改时间。

l  User-Agent:告知服务器,浏览器的类型

l  Content-Length:请求正文的数据长度

l  Cookie:(*****重要)会话管理有关

 

3.3请求正文:

数据能提交到服务器,表单中的输入域必须有name属性值

POST请求是才有正文

username=abc&password=123

 

4、响应部分详解

4.1响应行:

HTTP/1.1 200 OK

HTTP/1.1 :说明服务器端用的协议版本

200 :响应状态码

1XX 2XX 3XX 4XX 5XX

2XX:处理完毕

4XX:请求有误

5XX:服务器有误

记住常用的响应码:

200:一切正常

302/307:请求重定向

304:服务器上的资源没有发生改变

404:访问的地址不存在

500:服务器端错误

OK:响应码描述

 

4.2响应消息头:

作用:服务器端向客户端传递的附加信息(暗号指令)

l  Location:告知客户端,你去访问的地址。

和302/307实现请求重定向

l  Content-Encoding:告知客户端,响应正文使用的压缩编码(gzip)

l  Content-Length:告知客户端,响应正文的长度

l  Content-Type:告知客户端,响应文正的MIME类型。默认text/html

l  Refresh:告知客户端,定时刷新

l  Content-Disposition:告知客户端,用下载的方式打开  attachment;filename=23.jpg

l  Set-Cookie:(*****)会话有关

-------------

l  Expires: -1 控制时间的

l  Cache-Control: no-cache (1.1) 

l  Pragma: no-cache   (1.0)

三头一块用,用于告知浏览器,不要缓存。

 

----------------------

 

 

4.3响应正文:

浏览器解析的正文内容,右键查看源码一样的。

时间: 2024-09-16 01:18:26

JavaWeb 后端 <一> 之 Tomcat服务器 - Http协议 学习笔记的相关文章

RTSP协议学习笔记

一.        RTSP协议概述 RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似. RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演"网络远程控制"的角色.尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据.媒体数据的传送可通过RTP/RTCP等协议来完成. 一次基本的RTSP操作过程是:首先,客户端连接到流服务器并发送

MQTT协议学习笔记

1.前沿 万物联网的时代即将到来,物联网也由当初的概念开始进一步落实.随着无线网络技术飞速发展,各种设备都可以连接网络,实现远程控制.例如智能家居最近非常火爆,智能插座.智能LED灯.智能摄像头等.在互联网时代,HTTP协议负责建立网络连接,而到了物联网时代,由于智能硬件的差异,相比互联网终端,硬件配置要低的多,而且智能设备的环境也想多复杂,物联网中的数据传输会面临很多问题,比如在网络不稳定的情况下,如果保证数据的传输没有问题,如何保证数据不被重复发送,连接断开后如何进行重连,而HTTP协议由于

Linux服务器Shell编程学习笔记

Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):  代码如下 复制代码 #!/bin/sh ...注意:最好使用"!/bin/bash"而不是"!/bin/sh",如果使用tc shell改为tcsh,其他类似. 符号#!用来告诉系统执行该sell脚本的程序,本例使用/bin/sh.编辑结束并保存后,如果要执行该shell脚本

多台tomcat服务器之间实现代码同步,Javaweb的

问题描述 多台tomcat服务器之间实现代码同步,Javaweb的 10C 请问一下如何在多台tomcat服务器之间实现代码同步,就是说一台服务器上的Javaweb项目,和另一台服务器上的Javaweb项目进行实时同步,一旦一台更新,另一台也自动更新:需要详细点的步骤,最好有个例子:小弟C币不是很多,菜鸟一个,谢谢! 解决方案 我们这都是把项目编译好的文件放到中间服务器,因为是linu系统.用脚本自动更新重启!你们也可以自己写个脚本自动更新 解决方案二: 写个脚本,将文件拷贝过去,让那后再写个脚

技术-什么时候需要tomcat服务器,什么时候需要自己搭建服务器

问题描述 什么时候需要tomcat服务器,什么时候需要自己搭建服务器 目前我有一个关于服务器与客户端通信的问题:比如android新闻客户端,它的服务器端可以用PHP等技术来写,可以发布到tomcat服务器上,因为新闻客户端只需从服务器端获取数据,.又例如android的QQ客户端,它就涉及到客户端之间的通信,所以qq的服务器端应该用什么技术.qq的手机客户端和qq桌面版是用的同一个服务器吗? 解决方案 你搭建服务器也得用tomcat等服务器系统 解决方案二: 我也是小白的,不过我的理解是: t

svn 自动提交java web 项目到tomcat服务器

问题描述 svn 自动提交java web 项目到tomcat服务器 如配置svn提交后自动将javaweb项目更行到自动tomcat服务器中, 情节是这样:团队开发使用svn 在现阶段测试项目中不同的开发人员使用的tomcat服务器,这样造成一些数据不是同步的,现在想配置下让团队开发使用用一个tomcat服务器,这样所操作都是同步的.就想到使用svn自动提交 或者MyEclipse远程使用tomcat 有哪个大神会配置呢? 解决方案 [转]java web项目改名之后tomcat服务器项目自动

JavaWeb 后端 &lt;三&gt; 之 Response Request 学习笔记

一.响应对象 Response(重点:HTTP协议响应部分)   查看 HttpServletResponse set是 有这个头 修改 没有添加一个新的 和 add 有点小区别 案例: 1. 字节流向客户端输出中文数据 ServletOutputStream //字节流向客户端输出中文数据 public class ResponseDemo1 extends HttpServlet {           protected void doGet(HttpServletRequest requ

Tomcat服务器的安装配置图文教程(推荐)_服务器其它

现在将使用Tomcat的一些经验和心得写到这里,作为记录和备忘.如果有朋友看到,也请不吝赐教.   1.首先是Tomcat的获取和安装. 获取当然得上Apache的官方网站下载,开源免费,而且带宽也足够.下载会很快. 这是两种不同的下载,一个是普通安装版本,一个是解压安装版本.使用起来是一样的,只是在普通安装版本中有一些界面可提供对Tomcat的快捷设置,而且普通安装会将Tomcat作为系统服务进行注册. 2.Tomcat的运行环境搭建. (解压版)安装(就是解压)完成后如下: Tomcat的启

Tomcat服务器常用配置和HTTP简介

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.  -----------------------------------------------------------------------------