使用Spring Boot搭建HelloWorld Web页面(含HTTP协议分析)

140 篇文章 4 订阅

目录

 

 

理论

演示

解析


 

理论

Spring Boot优点:

1. 快速创建独立运行的Spring项目,以及与主流框架集成;

2. 使用嵌入式的Servlet容器,应用无需打包成WAR包;

3. starters自动依赖与版本控制;

4. 大量的自动配置,简化开发,也可修改默认值;

5. 无需配置XML,无代码生成,开箱即可;

6. 准生产环境的运行时应用监控;

7. 与云计算的天然集成;

 

微服务:架构风格

一个应用应该是一组小型服务;可以通过HTTP方式进行互通;

 

 

演示

在Spring 官网下载项目;

下载好后,使用IDEA打开:

构建如下Package和Class

源码如下:

HelloController.java

package com.IT1995.demo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class HelloController {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){

        return "Hello World!";
    }
}

跑起来后,进入web网站:

下面演示打包:

当maven中存在这个时候(用上面的操作肯定会有):

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

IDEA如下打包:

双击后:

关闭IDEA中的运行。

直接用Java调用jar包:

命令:java -jar xxxx.jar

 

同样Web能访问:

 

 

解析

这里我们看下web网站:

从中可以看出这个hello的请求返回的类型是一个document;

从中可以发现,他是通过GET方法进行请求的!

 

这里猜测,如果使用POST请求,能不能得到相同的效果:

答案是可以的!

下面来解析下响应头的信息:

Content-Type : text/plain;charset=UTF-8

首部字段Content-Type说明实体主体内对象的媒体类型。和首部字段Accept一样,字段值用type/subtype形式赋值。

参数charset使用iso-8859-1或euc-jp等字符集进行赋值;

 

下面解析下请求头的Accept首部

Accept: text/html, application/xhtml+xml, application/xml;q=0.9,*/*;q=0.8

Accept首部字段通知服务器,用户代理能够处理的媒体类型以及每天类型的相对优先级。可以使用type/subtype这种形式,一次指定多种媒体类型;

举个例子:

文本文件:

text/html,text/plain,text/css ...

application/xhtml+xml,application/xml ...

 

图片文件:

image/jpeg,image/gif,image/png ...

 

视频信息

video/mpeg, video/quicktime ...

 

应用程序使用的二进制文件

application/octet-stream, application/zip ...

 

比如浏览器不支持PNG图片格式,Accept就不指定image/png,而是指定image/gif和image/jpeg等图片类型。

若想要给显示的媒体类型增加优先级,使用q=来额外表示权重,用;分开,范围为0~1,可以精确到小数点后3位,1为最大,不指定时候默认为1.0。

当服务器提供多种内容时,将会优先返回权重值最高的媒体信息。

其中上面的  */*就是接收任意类型。

HTTP/1.1 200
Content-Type: text/plain;charset=UTF-8
Content-Length: 12
Date: Sat, 02 Mar 2019 05:19:28 GMT

Hello World!

及,内容为text/pain,字符集为UTF-8,长度为12,并且有时间,内容为Hello World!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值