网页设计后端开发 第1篇
业务方提出的需求和产品经理设计的产品方案大都聚焦于业务功能描述,在验收时,通常也只是验证要求实现的功能是否符合预期,极少考虑稳定性、兼容性、安全性、异常补偿等非功能性问题。
然而,很多时候,非功能性问题往往事关项目成败,因此必须根据业务场景谨慎评估非功能性问题并设计相应的解决方案。
在互联网领域,稳定性设计是最重要的非功能性设计。
与客户端不同,服务端对用户来说是不可见的,测试工程师无法直接通过 UI(User Interface)界面来验证服务端的复杂逻辑,因此,服务端开发工程师在进行非功能性设计时,需充分考虑可测试性。
非功能性设计涉及面广,除了上面介绍的稳定性和可测试性,还有应用安全、异常处理、扩展性、兼容性等方面,如下图所示。
网页设计后端开发 第2篇
响应协议:服务器将数据以响应格式返回给浏览器
包括:响应行 、响应头 、响应体
在版本中,浏览器访问服务器的几种方式:
获取资源。
向特定的资源发出请求。例:itheima_百度搜索
传输实体主体。
向指定资源提交数据进行处理请求(例:上传文件),数据被包含在请求体中。
返回服务器针对特定资源所支持的HTTP请求方式。
因为并不是所有的服务器都支持规定的方法,为了安全有些服务器可能会禁止掉一些方法,例如:DELETE、PUT等。那么OPTIONS就是用来询问服务器支持的方法。
获得报文首部。
HEAD方法类似GET方法,但是不同的是HEAD方法不要求返回数据。通常用于确认URI的有效性及资源更新时间等。
传输文件。
PUT方法用来传输文件。类似FTP协议,文件内容包含在请求报文的实体中,然后请求保存到URL指定的服务器位置。
删除文件。
请求服务器删除Request-URI所标识的资源
追踪路径。
回显服务器收到的请求,主要用于测试或诊断
要求用隧道协议连接代理。
HTTP/协议中预留给能够将连接改为管道方式的代理服务器
在我们实际应用中常用的也就是 :GET、POST
GET方式的请求协议:
请求行 :HTTP请求中的第一行数据。由:请求方式
、资源路径
、协议/版本
组成(之间使用空格分隔)
请求方式:GET
资源路径:/brand/findAll?name=OPPO&status=1
请求路径:/brand/findAll
请求参数:name=OPPO&status=1
请求参数是以key=value形式出现
多个请求参数之间使用&
连接
请求路径和请求参数之间使用?
连接
协议/版本:HTTP/
请求头 :第二行开始,上图黄色部分内容就是请求头。格式为key: value形式
http是个无状态的协议,所以在请求头设置浏览器的一些自身信息和想要响应的形式。这样服务器在收到信息后,就可以知道是谁,想干什么了
常见的HTTP请求头有:
Host: 表示请求的主机名。
User-Agent: 浏览器版本。 例如:Chrome浏览器的标识类似Mozilla/ ...Chrome/79 ,IE浏览器的标识类似Mozilla/ (Windows NT ...)like Gecko
Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。
Content-Type:请求主体的数据类型
Content-Length:数据主体的大小(单位:字节)
举例说明:服务端可以根据请求头中的内容来获取客户端的相关信息,有了这些信息服务端就可以处理不同的业务需求。
比如:
不同浏览器解析HTML和CSS标签的结果会有不一致,所以就会导致相同的代码在不同的浏览器会出现不同的效果
服务端根据客户端请求头中的数据获取到客户端的浏览器类型,就可以根据不同的浏览器设置不同的代码来达到一致的效果(这就是我们常说的浏览器兼容问题)
请求体 :存储请求参数
GET请求的请求参数在请求行中,故不需要设置请求体
POST方式的请求协议:
请求行(以上图中红色部分):包含请求方式、资源路径、协议/版本
请求方式:POST
资源路径:/brand
协议/版本:HTTP/
请求头(以上图中黄色部分)
请求体(以上图中绿色部分) :存储请求参数
请求体和请求头之间是有一个空行隔开(作用:用于标记请求头结束)
GET请求和POST请求的区别:
请求参数在请求行中。
例:/brand/findAll?name=OPPO&status=1
Web服务器对HTTP协议的请求数据进行解析,并进行了封装(HttpServletRequest),并在调用Servlet方法的时候传递给了Servlet。这样,就使得程序员不必直接对协议进行操作,让Web开发更加便捷。
代码演示:
与HTTP的请求一样,HTTP响应的数据也分为3部分:响应行、响应头 、响应体
响应行(以上图中红色部分):响应数据的第一行。响应行由协议及版本
、响应状态码
、状态码描述
组成
协议/版本:HTTP/
响应状态码:200
状态码描述:OK
响应头(以上图中黄色部分):响应数据的第二行开始。格式为key:value形式
常见的HTTP响应头有:
HTTP是个无状态的协议,可以在请求头和响应头中设置一些信息和想要执行的动作,这样,对方在收到信息后,就可以知道你是谁,你想干什么
响应体(以上图中绿色部分): 响应数据的最后一部分。存储响应的数据
响应体和响应头之间有一个空行隔开(作用:用于标记响应头结束)
参考: 资料/响应状态码.md
关于响应状态码,我们先主要认识三个状态码,其余的等后期用到了再去掌握:
200 ok
客户端请求成功
404 Not Found
请求资源不存在
500 Internal Server Error
服务端发生不可预期的错误
Web服务器对HTTP协议的响应数据进行了封装(HttpServletResponse),并在调用Servlet方法的时候传递给了Servlet。这样,就使得程序员不必直接对协议进行操作,让Web开发更加便捷。
代码演示:
响应状态码 和 响应头如果没有特殊要求的话,通常不手动设定。服务器会根据请求处理的逻辑,自动设置响应状态码和响应头。
刚才基于原始的Servlet程序开发Web应用,并基于此讲解了Http协议。 接下来,需要了解现在企业开发的主流技术 SpringBoot,并基于SpringBoot进行Web程序的开发 。
在正式的了解SpringBoot之前,要先来了解下什么是Spring。
可以打开Spring的官网(Spring | Home),去看一下Spring的简介:Spring makes Java simple。
网页设计后端开发 第3篇
能看到以上图片中Apache Tomcat的内容就说明Tomcat已经启动成功
注意事项 :Tomcat启动的过程中,遇到控制台有中文乱码时,可以通常修改conf/文件解决
关闭: 关闭有三种方式
1、强制关闭:直接x掉Tomcat窗口(不建议)
2、正常关闭:bin\
3、正常关闭:在Tomcat启动窗口中按下 Ctrl+C
说明:如果按下Ctrl+C没有反映,可以多按几次(在第一种方式页面按)
问题1:Tomcat启动时,窗口一闪而过
检查JAVA_HOME环境变量是否正确配置
问题2:端口号冲突
发生问题的原因:Tomcat使用的端口被占用了。
解决方案:换Tomcat端口号
要想修改Tomcat启动的端口号,需要修改 conf/文件(在文件的第69行附近,建议使用VSCode打开查看)
使用VSCode打开查看:
注: HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。
Servlet 是运行在Web服务器中的小型java程序,是Java提供的一门动态web资源开发技术。通常通过HTTP协议接收和响应来自于客户端的请求。
Servlet 是JavaEE规范之一,其实就是一个接口(定义Servlet需实现Servlet接口 或 继承HttpServlet) ,并由web服务器运行Servlet。
需求:使用Servlet开发一个Web应用,浏览器发起请求 /hello 之后,给浏览器返回一个字符串 _Hello Xxx_。
步骤:
1). 准备:打开IDEA,创建maven项目(设置打包方式为war),导入Servlet坐标(provided)
2). 定义一个类,实现Servlet接口(继承HttpServlet),并实现所有方法。在Servlet类上使用@WebServlet注解,配置该Servlet的访问路径。
3). 将开发好的Servlet部署在外部的Tomcat服务器中运行。
选择 Edit Configurations
。
选择 Tomcat Server
。