前言:

本文内容:Tomcat详解、Http详解

推荐免费JavaWeb入门到实战视频:【狂神说Java】JavaWeb入门到实战_哔哩哔哩_bilibili

Tomcat详解

安装Tomcat

Apache Tomcat® - Apache Tomcat 10 软件下载

如果你使用旧版IDEA,则推荐下载9以下的版本,不建议使用最新版

Apache Tomcat 8 Apache Tomcat 9

168

Tomcat启动和配置

解压后文件夹

167

启动和关闭

访问测试:http://localhost:8080

166

可能遇到的问题:

  • 需要Java环境变量
  • 闪退问题:需要配置兼容性
  • 乱码问题:配置文件中设置

配置

核心配置文件

165

可以配置启动端口号

  • Tomcat默认端口号:8080
  • MySQL默认端口号:3306
  • Oracle默认端口号:1521
  • SQLServer默认端口号:1433
  • http默认端口号:80
  • https默认端口号:433
1
2
3
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

可以配置host名称

  • 默认的主机名为:localhost->127.0.0.1
  • 默认网站存放位置:webapps
1
2
<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true">

提问

网站如何进行访问?

  1. 在浏览器地址栏输入要访问的域名

  2. 先会去检查本机hosts配置文件下有无这个域名的映射

    • 如果有:直接返回本地对应的ip地址

      1
      127.0.0.1  localhost
    • 若没有,则去DNS服务器找,并返回

发布一个Web网站

  1. 将自己写好的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)

  2. 网站应该有的结构

    1
    2
    3
    4
    5
    6
    7
    8
    9
    -- webapps  Tomcat服务器的web目录
    -- ROOT
    -- 你的项目
    -- WEB-INF
    -- classes:java程序
    -- lib:web应用所需jar包
    -- web.xml:网站配置文件
    -- index.html 默认首页
    -- ......

Http详解

什么是http

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。

  • 文本:字符串,数字…
  • 超文本:html,图片,定位…

https更安全

两个时代

  • http1.0
    • HTTP/1.0:客户端与Web连接后,只能获得一个web资源,断开连接
  • http2.0
    • HTTP/1.1:客户端与web服务器连接后,可以获得多个web资源

Http请求

客户端–发请求(request)–服务器

  • 请求行

    • 请求行中的请求方式:Get
    • 请求方式:Get,Post
      • Get:请求能够携带参数较少,大小有限制,会在浏览器的URL地址栏显示数据,不安全,但高效
      • Post:请求挈带参数没有大小限制,相对get比较安全,但不高效
  • 消息头

    HTTP消息头用来准确描述正在获取的资源、服务器或者客户端的行为,定义了HTTP事务中的具体操作参数。

Http响应

服务器–响应(respone)–客户端

  • 响应体

    响应体是服务器返回给客户端的文本信息。

  • 响应状态码

    • 200 请求响应成功
    • 300 重定向
    • 404 找不到资源
    • 500 内部服务器错误
    状态码 原因短语 HTTP 版本
    消息响应
    100 Continue (继续) HTTP/1.1 可用
    101 Switching Protocol (切换协议) HTTP/1.1 可用
    成功响应
    200 OK (成功) HTTP/0.9 可用
    201 Created (已创建) HTTP/0.9 可用
    202 Accepted (已创建) HTTP/0.9 可用
    203 Non-Authoritative Information (未授权信息) HTTP/0.9 and 1.1
    204 No Content (无内容) HTTP/0.9 可用
    205 Reset Content (重置内容) HTTP/1.1 可用
    206 Partial Content (部分内容) HTTP/1.1 可用
    重定向
    300 Multiple Choice (多种选择) HTTP/1.0 and later
    301 Moved Permanently (永久移动) HTTP/0.9 可用
    302 Found (临时移动) HTTP/0.9 可用
    303 See Other (查看其他位置) HTTP/0.9 and 1.1
    304 Not Modified (未修改) HTTP/0.9 可用
    305 Use Proxy (使用代理) HTTP/1.1 可用
    306 unused (未使用) HTTP/1.1 可用
    307 Temporary Redirect (临时重定向) HTTP/1.1 可用
    308 Permanent Redirect (永久重定向) HTTPbis (试验草案)
    客户端错误
    400 Bad Request (错误请求) HTTP/0.9 可用
    401 Unauthorized (未授权) HTTP/0.9 可用
    402 Payment Required (需要付款) HTTP/0.9 and 1.1
    403 Forbidden (禁止访问) HTTP/0.9 可用
    404 Not Found (未找到) HTTP/0.9 可用
    405 Method Not Allowed (不允许使用该方法) HTTP/1.1 可用
    406 Not Acceptable (无法接受) HTTP/1.1 可用
    407 Proxy Authentication Required (要求代理身份验证) HTTP/1.1 可用
    408 Request Timeout (请求超时) HTTP/1.1 可用
    409 Conflict (冲突) HTTP/1.1 可用
    410 Gone (已失效) HTTP/1.1 可用
    411 Length Required (需要内容长度头) HTTP/1.1 可用
    412 Precondition Failed (预处理失败) HTTP/1.1 可用
    413 Request Entity Too Large (请求实体过长) HTTP/1.1 可用
    414 Request-URI Too Long (请求网址过长) HTTP/1.1 可用
    415 Unsupported Media Type (媒体类型不支持) HTTP/1.1 可用
    416 Requested Range Not Satisfiable (请求范围不合要求) HTTP/1.1 可用
    417 Expectation Failed (预期结果失败) HTTP/1.1 可用
    服务器端错误
    500 Internal Server Error (内部服务器错误) HTTP/0.9 可用
    501 Implemented (未实现) HTTP/0.9 可用
    502 Bad Gateway (网关错误) HTTP/0.9 可用
    503 Service Unavailable (服务不可用) HTTP/0.9 可用
    504 Gateway Timeout (网关超时) HTTP/1.1 可用
    505 HTTP Version Not Supported (HTTP版本不受支持) HTTP/1.1 可用