Web入门(学习笔记)

Web入门

Spring

Spring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能。

SpringBoot可以帮助我们非常快速的构建应用程序、简化开发、提高效率。

SpringBootWeb入门

需求:使用SpringBoot 开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello world"

  • 创建Spring Boot 工程,并勾选web开发相关依赖
  • 定义HelloController类,添加方法hello,并添加注解
//请求处理类
@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello() {
        System.out.println("Hello World");
        return "Hello World";
    }
}
  • 运行测试

打开浏览器:localhost:8080/hello(默认占用8080端口)

HTTP协议

HTTP-概述

HTTP
  • 概念:Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
特点
  • 基于TCP协议 : 面向连接,安全
  • 基于请求-响应模型的:一次请求对应一次响应
  • HTTP协议是无状态的协议:对于事物处理没有记忆能力。每次请求-响应都是独立的
    • 缺点:多次请求间不能共享数据
    • 优点:速度快

HTTP-请求协议

HTTP-请求数据格式
请求名含义
Host请求的主机名
User-Agent浏览器版本
Accept表示浏览器能接收的资源类型,如text/* image/*或者*/*表示所有
Accept-Language表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
Accept-Encoding表示浏览器可以支持的压缩类型,例如gzip,deflate等
Content-Type请求主题的数据类型
Content-Length请求主体的大小(单位:字节)
请求行:请求数据第一行(请求方式、资源路径、协议)

请求头:第二行开始,格式:key:value

请求体:POST请求,存放请求参数

GET /hello HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
Cookie: Webstorm-e8df1f74=7f802f55-3128-445b-b96d-a8e14fe2c819
Host: localhost:8080
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0
sec-ch-ua: "Microsoft Edge";v="131", "Chromium";v="131", "Not_A Brand";v="24"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows

请求方式-GET:请求参数在请求行中,没有请求体,如:/brand/findAll?name=oppo&status=1GET的请求大小是有限制的

请求方式-POST:请求参数在请求体中,POST请求大小是没有限制的

HTTP-响应协议

HTTP/1.1 200			//响应行:响应数据第一行(协议、状态码、描述)
//响应头:从第二行开始,格式key:value
Content-Type: text/html;charset=UTF-8
Content-Length: 11
Date: Sun, 24 Nov 2024 08:25:29 GMT
Keep-Alive: timeout=60
Connection: keep-alive
//响应体:最后一部分,存放响应数据
响应状态码
状态码含义
1xx响应中-临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它
2xx成功-表示请求已经被接收,处理已经完成
3xx重定向-重定向到其他地方;让客户端再发起一次请求以完成整个处理
4xx客户端错误-处理发生错误,责任在客户端,如:请求了不存在的资源、客户端未被授权、禁止访问等
5xx服务器错误-处理发生错误,责任在服务端,如:程序抛出异常
响应头含义
Content-Type表示该响应内容的类型,例如text/html,application/json
Content-Length表示该响应内容的长度(字节数)
Content-Encoding表示该响应压缩算法,例如gzip
Cache-Control指示客户端应如何缓存,例如max-age=300表示最多可以缓存300秒
Set-Cookie告诉浏览器为当前页面所在的域设置cookie

HTTP-协议解析

服务端,解析请求,对浏览器进行响应

Web服务器-Tomcat

Web服务器

Web服务器是一个软件程序,对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。主要功能是"提供网上信息浏览服务"

主流的Web服务器

  • Apache Tomcat
  • jetty
  • WebLogic
  • WebSphere

简介

  • 概念:Tomcat 是 Apache 软件及机会一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量规范。
  • JavaEE:Java Enterprise Edition,Java企业版。指Java企业级开发的技术规范综合。包含13项技术规范:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail、JAF
  • Tomcat 也称为Web容器、Servlet 容器。Servlet 程序需要依赖于Tomcat才能运行

JavaSE java标准版

JavaME java小型版 开发与嵌入式程序

JavaEE Java企业版

基本使用Tomcat

文件夹目录解析
  • bin 可执行文件
  • conf 配置文件
  • lib Tomcat依赖的jar包
  • logs 日志文件
  • temp 临时文件
  • webapps 应用发布目录
  • work 工作目录

启动: 双击bin\startup.bat

  • 控制台中文乱码:修改conf/logging.properties

关闭

  • 直接关掉运行窗口
  • bin\shutdown.bat
  • Ctrl+C
常见问题
  • 启动窗口一闪而过:检查JAVA_HOME路径
  • 端口号冲突:找到并关闭(在任务管理器中找到8080端口)
  • 配置Tomcat端口号(conf\server.xml)
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

HTTP协议默认端口号为80,如果将Tomcat端口号改为80,将来访问Tomcat时,将不用输入端口号

Tomcat部署项目

将项目文件放置到webapps目录下,即可部署完成

入门程序解析

起步依赖

  • spring-boot-starter-web 包含了web应用开发所需要的常见依赖
  • spring-boot-starter-test 包含了单元测试所需要的常见依赖

内嵌的Tomcat服务器

基于Springboot开发的web应用程序,内置了tomcat服务器,当启动类运行时,会自动启动内嵌的tomcat服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值