day11-5_WEB应用服务器&协议

一、配置环境变量

Tomcat安装好后,需要配置环境变量,才能启动服务

1.配置JAVA_HOME路径:该路径指向jdk根目录
2.可以用%JAVA_HOME%替换掉Path里原来jdk的bin路径前的路径

配置JAVA_HOME

3.找到tomcat服务器bin目录下的startup.bat,启动

  • 启动tomcat服务

二、修改Tomcat的端口

1.在Tomcat根目录/conf/server.xml文件中修改端口

修改Tomcat的端口

注意:Tomcat的默认端口是8080, 但是,HTTP协议的默认访问的端口是80,80端口在浏览器中可以省略

三、常见的错误

1.无法访问

一般是服务没成功启动,需检查该服务是否启动

无法访问

2.404错误

表示在服务器上没有找到该文件,检查文件名、后缀或者路径、端口是否正确
1 名字是否对
2 web.xml 是否有配置
3 类是否在classes中
4 是否配置了字节码输出为classes


404错误

3.端口冲突

启动服务后窗口一闪而过,可能是已经启动服务,也可能是进程没有完全关闭,可以进入任务管理器把java的进程关掉,查看tomcat根目录logs文件夹下的日志文件,发现java.net.BindException: Address already in use: JVM_Bind表明是端口冲突

  • 端口冲突

4.配置文件错误

  • 删掉server.xml文件中的结束标签

    制造错误

  • 启动服务后一闪而过,打开日志文件查看错误org.xml.sax.SAXParseException,明显的提示你错误的位置

    配置文件错误日志

5.使用中文时编码错误

XML配置文件中使用了中文,此时XML文件必须使用UTF-8的编码

  • 此处使用ANSI编码格式保存


    制造编码错误
  • 启动服务一闪而过,打开日志com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException, 2 字节的 UTF-8 序列的- 字节 2 无效。

    编码错误

四、项目结构:建到自己记住为止

| 项目名称(项目的根目录)
        | WEB-INF  (此处存放的资源不能被外界访问)
                | web.xml   (当前web应用的配置信息)
                | classes  (当前web应用的字节码输出路径)
                | lib  (存放第三方jar包) 
        | 静态资源  (html,js,css可供外界访问)
  • sts修改字节码输出路径,右键web项目文件夹,点击构建路径,在此处修改


    sts修改字节码输出路径

五、部署项目

1.热部署项目

为了开发方便,我们需要热部署项目
在server文件的标签上添加标签

部署项目

Context :表示上下文,当前项目环境
docBase:项目路径,可以使用绝对路径或相对路径,相对路径是相对于webapps
path:访问项目的路径,如:http://127.0.0.1:8080/demo1 or localhost/demo1
注意:
1.如果没有path为空或者/的,就会找ROOT项目,使用该项目/文件名/访问http://localhost/webapp/index.htmlwebapp(项目名)
2.path为空或者/都会覆盖ROOT,此时访问不了tomcat服务器首页,默认是docBase的路径,直接访问http://localhost/index.html就是docBase指定的web项目【它会去自动找名为index的文件】
3.path的唯一性

2.Eclipse的Tomcat插件

  • 将插件的jar包net.sf.eclipse.tomcat_9.1.2.jar拷贝到sts的dropins目录中
  • 关联本地的Tomcat服务器
  • alt+t 启动/重启服务器


    关联本地的Tomcat服务器

六、URL

在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource
Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。

  • 语法:

解析:协议类型://服务器地址[:端口号]/路径/文件名[参数=值]
伪代码: protocol :// hostname[:port] / path / [;parameters][?query]#fragment
真实地址: http://localhost:8080/webapp/index.html

七、协议

协议: protocol,指定使用的传输协议,下表列出 protocol 属性的有效方案名称。 最常用的是HTTP协议,它也是WWW中应用最广的协议。

  • 协议分类:
  • file 资源是本地计算机上的文件。格式file:///,注意后边应是三个斜杠。
    (标准 url scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]本地文件没有 host,就直接省略了,只剩下最后的斜线后就是路径,看起来就是三个连起来了)
  • ftp 通过 FTP访问资源。格式 FTP://
  • http 通过 HTTP 访问该资源。 格式 HTTP://
  • https 通过安全的 HTTPS 访问该资源。 格式 HTTPS://

八、IP

是指存放资源的服务器的域名系统(DNS) 主机名或 IP 地址。有时,在主机名前也可以包含连接到服务器
所需的用户名和密码(格式:username:password@hostname)。

  • localhost是一个域名,127.0.0.1为IP地址。
  • Windows系统中,约定127.0.0.1为本地IP地址。localhost是其对应的域名。
  • 配置是在hosts文件中设置的,Windows下该文件位置为:C:\Windows\System32\drivers\etc目录下hosts文件。


    配置主机的域名和ip

九、端口

端口: port

  • 整数,可选,省略时使用方案的默认端口,各种传输协议都有默认的端口号,如http的默认端口为80。
    如果输入时省略,则使用默认端口号。有时候出于安全或其他考虑,可以在服务器上对端口进行重定
    义,即采用非标准端口号,此时,URL中就不能省略端口号这一项。

十、TCP和UDP的区别

TCP和UDP的区别: TCP基于连接的协议,UDP基于数据报包的协议

  • 1.TCP :面向连接(经历三次握手)、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源)。 服务端和客户端(浏览器)
    第一次:客户端发送请求到服务器,服务器知道客户端发送,自己接收正常。SYN=1,seq=x
    第二次:服务器发给客户端,客户端知道自己发送、接收正常,服务器接收、发送正常ACK=1,ack=x+1,SYN=1,seq=y
    第三次:客户端发给服务器:服务器知道客户端发送,接收正常,自己接收,发送也正常.seq=x+1,ACK=1,ack=y+1


    TCP建立连接

    TCP断开连接(四次挥手)
    第一次:客户端请求断开FIN,seq=u
    第二次:服务器确认客户端的断开请求ACK,ack=u+1,seq=v
    第三次:服务器请求断开FIN,seq=w,ACK,ack=u+1
    第四次:客户端确认服务器的断开ACK,ack=w+1,seq=u+1


    TCP断开连接
  • UDP:面向非连接,基于数据报包、传输不可靠(丢包[数据丢失])、用于传输少量数据(数据报包模式)、速度快。发送端和接收端

十一、HTTP的作用

WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,就是HTTP协议。
HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议之上的一个应用层协

作用: 用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式。

  • 浏览器给服务器发送数据:一次请求:request
    服务器给浏览器反馈数据:一次响应:response
  • HTTP1.1规范:能在一次连接之间,多次请求,多次响应,响应完之后再关闭连接
    HTTP 1.1的特点 在一个TCP连接上可以传送多个HTTP请求和响应 多个请求和响应过程可以重叠进行 增加了更多的请求头和响应头

十二、如何查看HTTP中的请求和响应的信息

  • 1.F12进入浏览器的开发者模式

  • 2.打开network窗口

  • 3.点击要查看的请求

  • 查看请求和响应信息
  • 常规信息general

  • 响应头信息response


    响应头信息

    -- 1.状态行:位于响应消息的第一行 格式: HTTP版本号 状态码

1xx Informational(指示信息) 表示请求已接收,继续处理
2xx Success(请求成功) 表示请求已被成功接收
3xx Redirection(重定向) 完成请求,必须进行更进一步的操作
4xx Client Error(客户端错误) 请求有语法错误或者请求无法实现
5xx Server Error(服务端错误) 服务器处理请求出错
<<<<<<<<<<<<
200 OK 请求正常处理完毕
404 Not Found 表示服务器找不到你请求的资源
500 Internal Server Error 表示服务器执行请求的时候出错了 (Java代码有异常)

-- 2. 若干响应头:从第二行开始到第一个空行

-- 3. 响应正文:从第一个空行开始,后面的都是正文。


响应正文
  • 请求头信息request


    请求头信息

    -- 1. 请求行:位于请求消息的第一行 格式:请求方式 资源路径 HTTP版本号,常用请求方式:GET和POST方式
    -- 2. 若干请求头:从第二行开始到下一个空行。作用:向服务器传递客户端的一些基本信息
    -- 3. 请求实体:(提交到服务器的请求参数)


    请求实体

十三、GET和POST请求的区别

  • GET和POST请求的区别:

1):GET的请求数据在地址栏,而POST不会,POST比GET安全一些


GET和POST方式提交表单对比

2):POST请求的参数存放于请求实体中,而GET存放于请求行中
3):GET方式请求的数据不能超过2K,而POST没有上限,比如文件上传时,必须使用POST方式
4):GET可以缓存,而POST没有缓存


  • 查询的时候使用使用GET,其他时候使用POST,表单全部使用POST提交.
GET和POST请求的区别

你可能感兴趣的:(day11-5_WEB应用服务器&协议)