Spring Boot 入门:RESTful 接口的 Web服务

一、初步了解HTTP协议

HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议,是一种应用层的协议。HTTP默认使用80端口,这个端口指的是服务端的端口,而客户端使用的端口是动态分配的。当我们没有指定端口访问时,浏览器会默认帮我们添加80端口。我们也可以自己指定访问端口。但是现在大多数访问都使用了HTTPS协议,而HTTPS的默认端口为443,如果使用80端口访问HTTPS协议的服务器可能会被拒绝。

1、HTTP 工作原理

HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

2、HTTP请求过程

1.首先通过DNS对域名进行解析(如果是IP地址就不用解析了),DNS解析的顺序:浏览器缓存->操作系统缓存->hosts文件->DNS服务器。
2.通过TCP三次握手,浏览器与服务器端建立连接。
3.浏览器发起HTTP请求。
4.服务器响应HTTP请求。
5.浏览器解析html代码,并请求html代码中的资源(css/js/image)。
6.浏览器对页面内容进行渲染并展示。
7.TCP四次挥手关闭连接。

3、HTTP请求的方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作方式:GET, POST 和HEAD、OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

请求方法 备注
GET 当客户端要从服务器中读取某个资源时,使用GET 方法。GET 方法要求服务器将URL 定位的资源放在响应报文的数据部分,回送给客户端,即向服务器请求某个资源。使用GET 方法时,请求参数和对应的值附加在 URL 后面,利用一个问号(“?”)代表URL 的结尾与请求参数的开始,传递参数长度受限制
POST 当客户端给服务器提供信息较多时可以使用POST 方法,POST 方法向服务器提交数据,将数据提交给服务器处理。POST 会附带用户数据,一般用于更新资源信息。POST 方法将请求参数封装在HTTP 请求数据中,以名称/值的形式出现,可以传输大量数据;
HEAD 获取响应头
PUT 替换资源
DELETE 删除资源
CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器性能
TRACE 回显服务器收到的请求,用于测试或诊断

4、HTTP报头

(1)HTTP请求报文

HTTP 请求报文主要由请求行、请求头、空行、请求正文四部分组成。

  • 请求行
    请求行由方法字段、URL 字段 和HTTP 协议版本字段 3 个部分组成,他们之间使用空格隔开。常用的 HTTP 请求方法有 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
  • 请求头
    请求头部由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关于客户端请求的信息。
  • 空行
    最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。
  • 请求正文
    请求包体不在 GET 方法中使用,而是在POST 方法中使用。POST 方法适用于需要客户填写表单的场合。与请求包体相关的最常使用的是包体类型 Content-Type 和包体长度 Content-Length。

(2)HTTP响应报文

HTTP 响应报文主要由状态行、消息报头、空行、响应正文四部分组成。

  • 状态行
    状态行由 HTTP 协议版本字段、状态码和状态码的描述文本 3 个部分组成,他们之间使用空格隔开。
    状态码由三位数字组成,第一位数字表示响应的类型,常用的状态码有五大类。
  • 响应头部
    响应头包括:Location、Serve、Vary、Connection、WWW-Authenticate、
  • 空行
    最后一个响应头部之后是一个空行,发送回车符和换行符,通知服务器以下不再有响应头部。
  • 响应正文
    服务器返回给客户端的文本信息。

二、HTTP请求消息Request和Response

1、HTTP请求消息Request

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:

请求行请求头部空行请求数据四个部分组成。

  • Get请求例子
    在这里插入图片描述
  • 第一部分: 请求行,用来说明请求类型,要访问的资源以及所使用的HTTP版本.
    GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源,该行的最后一部分说明使用的是HTTP1.1版本。
  • 第二部分:请求头部,紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
    从第二行起为请求头部,HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等
  • 第三部分:空行,请求头部后面的空行是必须的
    即使第四部分的请求数据为空,也必须有空行。
  • 第四部分:请求数据也叫主体,可以添加任意的其他数据。
    这个例子的请求数据为空。
  • POST请求例子
    在这里插入图片描述

第一部分:请求行,第一行明了是post请求,以及http1.1版本。
第二部分:请求头部,第二行至第六行。
第三部分:第七行的空行。
第四部分:第八行,请求数据。

2、HTTP之响应消息Response

一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
HTTP响应也由四个部分组成,分别是:状态行消息报头空行响应正文

在这里插入图片描述

  • 第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
  • 第二部分:消息报头,用来说明客户端要使用的一些附加信息。
  • 第三部分:空行,消息报头后面的空行是必须的
  • 第四部分:响应正文,服务器返回给客户端的文本信息。

三、使用IDEA创建一个SpringBoot服务,并创建三个restful风格的接口

1、创建SpringBoot项目

在IDEA的菜单栏,选择File,然后New 目录下选择Project选项,选择Spring Initializr,其余具体选择见图,点击next:
在这里插入图片描述
在Artifact里为项目命名,java version选8,点击next:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值