Tomcat+HTTP

3.Tomcat

3.1 安装tomcat

tomcat官网:Apache Tomcat® - Welcome!

3.2 Tomcat启动和配置

tomcat文件夹作用

  • bin:启动关闭的脚本文件
  • conf:配置
  • lib:依赖的jar包
  • logs:日志
  • webapps:存放网站

启动、关闭Tomcat

启动:bin→startup.bat

关闭:直接关闭/bin→shutdown.bat

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

可能遇到的问题:

  1. Java环境变量没有配置
  2. 闪退问题:需要配置兼容性
  3. 乱码问题:配置文件中设置

3.3 配置

tomcat配置

可以配置启动的端口号

  • tomcat默认端口号:8080
  • mysql:3306
  • http:80
  • https:443
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000" 
           redirectPort="8443" />

可以配置主机的名称

  • 默认的主机名为:localhost→127.0.0.1
  • 默认网站应用存放的位置为:webapps
<Host name="www, qinjiang.com" appBase="webapps"
      unpackwARs="true" autoDeploy="true">

高难度面试题:

请谈谈网站是如何进行访问的?

  1. 输入一个域名;回车

  2. 检查本机的C:\Windows\System32\driversletc\hosts配置文件下有没有这个域名映射

    • 有:直接返回对应的ip地址,这个地址中由我们需要访问的web程序,可以直接访问

      127.0.0.1    www.qinjiang.com
      
    • 没有:去DNS服务器找,找到的话就返回,找不到的话就返回找不到

      网站访问

​ 3.配置环境变量(可选项)

3.4 发布一个web网站

不会就先模仿

  • 将自己写的网站,放到服务器(Tomcat)中指定文件夹的web应用的文件夹(webapps)下,就可以访问了。

    启动tomcat,进入localhost:8080/指定文件夹

网站应有的结构

--webapps:Tomcat服务器的web目录
    -ROOT
    -kuangstudy:网站的目录名
    	-WEB-INF
    		-classes:java程序
            -lib:web:应用所依赖的jar包
            -web.xml:网站配置文件
    	-index.html 默认的首页
    	-static
    		-css
    			-style.css
    		-js
    		-img
    	-......

4.Http

4.1 什么是HTTP

Http(超文本传输协议)是一个简单的请求-响应协议,通常运行在TCP之上

  • 文本:html,字符串,~...
  • 超文本:图片,音乐,视频,定位,地图......
  • 80

Https:安全的

  • 443

4.2 两个协议

  • http1.0

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

    • HTTP/1.1:客户端可以与web服务器连接后,可以获得一个web资源

4.3 Http请求

  • 客户端--发请求(Request)--服务器

百度:

1 Request URL:https://www.baidu.com/     请求地址
2 Request Method:GET     get方法/post方法
3 Status Code:200 OK     状态码:200
4 Remote(远程) Address:14.215.177.39:443
1 Accept:text/html
2 Accept-Encoding:gzip,deflate,br
3 Accept-Language:zh-CN,zh;q=0.9     语言
4 Cache-control:max-age=0 
5 Connection:keep-alive

1、请求行

  • 请求行中的请求方式:GET
  • 请求方式:GET、POST、HEAD、DELETE、PUT、TRACT...
    • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
    • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效

2、消息头

1 Accept:告诉浏览器所支持的数据类型
2 Accept-Encoding:支持哪种编码格式   GBK、UTF-8、GB2312、ISO8859-1
3 Accept-Language:告诉浏览器它的语言环境
4 Cache-control:缓存控制
5 Connection:告诉浏览器,请求完成时断开还是保持连接
6 HOST:主机......

4.4 Http响应

  • 服务器--响应--客户端

百度:

1 cache-contro1:private    缓存控制
2 connection:Keep-Alive    连接
3 content-Encoding:gzip    编码
4 Content-Type:text/html   链接

1.响应体

1 Accept:告诉浏览器所支持的数据类型
2 Accept-Encoding:支持哪种编码格式   GBK、UTF-8、GB2312、ISO8859-1
3 Accept-Language:告诉浏览器它的语言环境
4 Cache-control:缓存控制
5 Connection:告诉浏览器,请求完成时断开还是保持连接
6 HOST:主机......
7 Refrush:告诉客户端,多久刷新一次
8 Location:让网页重新定位

2.响应状态码

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你的新位置

4xx:找不到资源 404

  • 资源不存在

5xx:服务器代码错误 500 502(网关错误)

常见面试题:

当你的浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来,经历了什么

  1. 输入一个域名;回车
  2. 检查本机的C:\Windows\System32\driversletc\hosts配置文件下有没有这个域名映射
    • 有:直接返回对应的ip地址。没有:去DNS服务器找,找到的话就返回,找不到的话就返回找不到
  3. 建立TCP链接
    • 浏览器与服务器通过TCP三次握手建立连接
    • 如果是HTTPS,还会进行TLS握手协商加密参数
  4. 发送HTTP请求
  5. JavaWeb服务器处理请求
    • Web服务器接收:如Tomcat、Jetty等通过监听端口(默认8080)接收请求
    • 请求解析:服务器解析HTTP请求,确定请求方法、URI、参数等
    • Servlet容器处理:
      • 根据web.xml或注解找到对应的Servlet
      • 创建HttpServletRequest和HttpServletResponse对象
      • 调用Servlet的service()方法(最终调用doGet/doPost等)
  6. 业务处理
    • Servlet处理:你的Java代码处理业务逻辑,可能包括:
      • 访问数据库(通过JDBC或ORM框架如Hibernate)
      • 调用业务服务层
      • 处理会话(Session)和Cookie
      • 参数验证和过滤
    • 生成响应:通常通过JSP或模板引擎(如Thymeleaf、Freemarker)生成HTML
  7. 发送HTTP响应
    • Servlet将处理结果写入HttpServletResponse,服务器将响应封装为HTTP报文
  8. 浏览器渲染
    • 浏览器接收响应,解析HTML
    • 构建DOM树和CSSOM树,合并为渲染树
    • 布局和绘制页面
    • 遇到静态资源(JS/CSS/图片)会再次发起请求获取
  9. 链接关闭或保持
posted @ 2025-08-17 21:34  lu璐  阅读(11)  评论(0)    收藏  举报