SpringBoot入门

网络编程

一、概要

实现前端和后端之间的交互,这个就叫做是网络编程。实现前端与后端的交互就需要用到Socket技术。

二、通信架构

1、C/S架构

需要安装客户端的软件,这个需要下载,但是相对B/S比较安全

2、B/S架构

用浏览器访问内容即可,这个不需要下载即可使用

三、网络通信三要素

1、IP

访问一个网站时,需要一个地址才能访问;在网络中实现不同计算机的通信,这时每个计算机必须要有一个标识才能进行访问,这个标识就是IP。

1.1 本机IP

每台计算机都有一个回环地址127.0.0.1,这个代表本机,单平时都是在浏览器的地址栏输入localhost进行访问本机。

1.2 ip地址的分类
1)IPv4
  • 由32位二进制组成。为了方便记忆,分成了4段,每段8位
  • 将这4段转为十进制并用点分割,此种方式叫做点分十进制
2)IPv6
  • ipv4个数有限,最多生成42.27亿个IP地址。所以衍生出了ipv6
  • 由128位十六进制表示。分成了8段,每段16位表示4个十六进制数
  • 各组之间用":"隔开,如我自己的ipv6地址fe80::67c7:da2d:204:12d8%16
  • 如果ipv6中出现了连续几组的0,可以用"::"代替,但是一个地址只能出现一次"::"
1.3 内/外网
  • 内网表示局域网LAN
  • 外网表示广域网WAN

联想:城域网MAN

1.4 查看本机的IP地址
  • 用ipconfig命令可以查看本机的IP地址

2、Port

2.1 定义

Port就是端口号,端口号定义为1到65535,0一般不做使用

2.2 分类
1)公认端口

从0到1023,公认端口是明确表明了某种服务的协议

2)注册端口

从1024到49151,这个是JavaWeb程序建议使用的范围

3)动态/私有端口

从49152到65535,理论上,不应为服务分配这些端口,机器通常从1024起分配动态端口

4)缺省端口号
  • 80:当请求是http协议时可以不写端口号,默认就是80
  • 443:当请求是https协议时可以不写端口号,默认就是443

注意:同一台机器上不能同时有两个应用程序使用同一个端口。否则会造成端口冲突,会报错:RuntimeError: Address already in use

3、网络通信协议

3.1 概要

国际组织统一规定好的一套建立连接、数据传输的规则被称为网络通信协议。只有当大家都遵守这个协议时,才能彼此建立连接。

网络通信协议中使用的是7层模型,7层模型的优化版本是四层模型:

  • 应用层 => HTTP
  • 传输层 => TCP、UDP
  • 网络层 => IP
  • 物理/数据链路层  => 光纤/比特流
3.2 UDP协议

1、UPD(User Datagram Protocol):用户数据报协议;

2、特点:无连接、不可靠通信、通信效率高;适用于直播和语音通话;

3、说明:

  • 无连接,不可靠通信:此协议本身并未建立连接,所以发送方并不知道是否与接受方建立连接。
  • 此协议是按照包的形式发送:包数据包含:自己的IP、程序端口、目的地IP、程序端口和数据;当超过64kb就会分包进行发送。
3.3 TCP协议

1、TCP(Transmission Control Protocol):传输控制协议;

2、特点:面向连接、可靠通信、通信效率相对UDP低,适用于文件下载、支付等业务;

3、说明:

  • TCP实现可靠传输: 三次握手,四次挥手
  • 三次握手
    • 客户端向服务端发送请求
    • 服务端相应请求
    • 再次确认连接
  • 四次挥手
    • 客户端向服务端发送断开请求
    • 服务端相应并等待
    • 服务端相应并确认是否断开
    • 正式发送断开请求
3.4 HTTP协议
1)定义

http(Hyper Text Transfer Protocol),超文本传输协议:规定了浏览器与服务器之间的数据传输的规则

2)特点
  • 基于TCP协议:面向连接,安全可靠
  • 一次请求对应一次响应
  • 无法在多次请求之间共享数据,每次请求、响应都是独立的。
3)请求协议

浏览器 ->服务器

浏览器以请求格式发送到服务器,包括请求行、请求头、请求体

  1. 请求行:HTTP请求中的第一行数据
    • 组成格式(中间用空格隔开):请求方式 资源路径 协议/版本
    • 请求方式

请求方式

请求说明

GET

获取资源
浏览器只能发送GET请求,数据拼接在地址栏后面

POST

新建、更新资源,数据存放在请求体中

PUT

更新资源

DELETE

删除资源

  1. 请求头:从第二行开始就是请求头,格式都是以键值对的形式(key:value)
    1. Host:主机名
    2. User-Agent:浏览器的版本
    3. Accept:浏览器能接受的资源类型
    4. Accept-Language:浏览器的语言
    5. Accept-Ecoding:浏览器支持的压缩类型
    6. Content-Type:请求主体的数据类型
    7. Content-Length:数据主体的大小
  1. 请求体:存储请求的参数,POST请求体一般就在Payload中看

GET和POST请求的区别:

  • GET请求的参数在地址栏中,POST的请求参数在请求体中
  • GET的请求参数有长度限制(一般为2KB),POST的请求参数没有长度限制
  • GET请求的安全性低(因为参数暴露在地址栏中),POST请求安全性高
  1. 一般请求都是看payload,响应看preview
3)响应协议

服务器 -> 浏览器

服务器将数据以响应格式返回给浏览器,包括响应行、响应头、响应体

  1. 响应行:响应数据的第一行
    • 组成格式(用空格隔开):协议及版本 响应状态码 状态码的描述
  1. 响应头:从第二行开始就是响应头,格式都是以键值对的形式(key:value)
    1. Content-Type:表示该响应内容的类型
    2. Content-Length:表示该响应内容的长度
    3. Content-Encoding:表示该响应压缩算法
    4. Cache-Control:指示客户端应如何缓存
    5. Set-Cookie: 告诉浏览器为当前页面所在的域设置cookie
  1. 响应体:响应数据的最后一部分,存储响应的数据,响应体一般在Response中看
    1. 响应转态码:
      • 200 OK => 客户端请求成功
      • 404 Not Found => 请求资源不存在
      • 400 Bad Request => 请求语法错误
      • 500 Internal Server Error =>服务端发生不可预期的错误

四、域名

域名是便于人类记忆的IP地址,是需要购买的

域名是从右往左分级,分为: 一级 二级 三级,书写是从右往左书写:...三级.二级.一级

五、DNS

域名需要靠DNS域名解析器进行解析,每台电脑本地有一个域名解析器,我们可以在里面配置本机的127.0.0.1映射到哪个域名地址

六、web服务器

1、定义

Web服务器是一个软件程序,其根本是基于ServerSocket编写的程序。它是用来运行我们的项目,帮助我们解析请求和携带响应信息,并且可以让我们的项目可以接收请求

2、作用

部署Web项目,对外提供资源访问功能

3、Tomcat

3.1 概要

Tomcat是一个免费的开放源代码的Servlet容器,在Tomcat内部运行就是Servlet,它支持Html解析

  • Servlet:是一个容器,可以接收请求,Tomcat之所以可以接收请求就是因为底层就是Servlet,我们写的一个方法在servlet中就是一个servlet实例
3.2 使用
  • Tomcat启动:在bin目录下双击startup.bat
    • 如果遇到乱码问题:

  • Tomcat停止:
    • 直接关闭黑窗口
    • Ctrl+c
    • 在bin目录下双击shutdown.bat
  • Tomcat修改端口号:在conf目录下的server.xml中搜索8080,修改为你自己想要的端口号

  • 使用本机IP+tomcat端口号会默认访问webapps/ROOT/index.html/htm/jsp页面

  • 部署自己的前端项目:把前端项目放入到webapps/ROOT下,使用本机IP+tomcat端口号+前端页面文件夹路径

  • Tomcat常见问题:
    • 如果启动两个端口号相同的tomcat会报错
    • 如果tomcat一闪而过就是Java_home环境变量配置错误

七、SpringBoot入门

SpringBoot实现

1、现在idea创建一个新的项目

2、选择SpringBoot项目,并填写相应的内容,填写完成后点击"Next"。

3、选择依赖版本并勾选初始化依赖,SpringBoot必须要Web依赖

4、为了让项目简洁,我们可以删掉项目用不到的文件

5、更改项目的具体版本

6、创建请求处理类——专门用来接收前端发起到后端的请求,此类必须放在cotroller包下

7、运行SpringBoot项目

运行结果

8、浏览器访问——浏览器输入地址:http://localhost:8080/hello 访问

在控制台中的结果:

八、资源路径

1、URL

  1. 定义:URL称为统一资源定位符,可以直接使用此地址找到互联网上的资源。例如:接口、页面。
  2. 组成:协议名://IP地址:端口号/资源名称 (如:http://localhost:8080/hello

2、URI

  1. 定义:URI统一资源标识符,俗称请求资源路径,URL地址中端口号后面的地址叫做URI。(如:/hello)
  2. 区别:URL包含URI,URI只是URL的一部分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值