JavaWeb技术栈

news2025/2/25 17:27:11

一个网页是怎么运行的?

首先网页想要运行,需要有静态资源他们负责页面的展示,如果我们想要页面产生互动效果,我们需要动态资源进行逻辑处理。同时,我们还需要数据库来存取数据。

进入一个网站,浏览器向服务器请求资源,动态资源去数据库里拿取数据,静态数据做出页面,最后服务器响应返回页面给浏览器。浏览器解析页面成为我们看到的效果。

 HTTP:超文本传输协议

HTTP规定了浏览器和服务器之间传输数据的规则。

HTTP协议特点:

基于TCP协议:面向连接,安全

基于请求-响应模型:一次请求对应一次响应

HTTP协议是无状态的协议,对于事务处理没有记忆能力。每次请求-响应都是独立的。

优点:速度快。

缺点:多次请求间不可以共享数据。

举个例子:我们将商品添加到购物车这一行为是一个请求和响应。我们打开购物车结算的时候又是一个请求和响应。我们需要知道将什么东西添加到了购物车里,但两次请求之间的数据不能共享。

Java会提供会话技术(cookie和Session)来解决这个问题。

HTTP-请求数据格式

 

1、请求行:请求数据的第一行。其中GET表示请求方式,/表示请求资源路径,HTTP/1.1表示协议版本。

GET/HTTP/1.1

2、请求头:从第二行开始,格式为键值对key:value形式。

User-Agent:用于浏览器兼容性处理,让不同浏览器访问的效果相同

3、请求体:

 POST请求方式独有的模块。用来存放请求的数据,没有数据大小的限制。

总结:

GET请求和POST请求的区别

1、GET请求请求参数在请求行中,没有请求体。POST请求在请求体中。

2、GET 请求参数有大小限制(4kb),但是POST请求体没有大小限制。

HTTP-响应数据格式

 响应数据同样分为三部分。

1、请求行:响应数据的第一行。其中HTTP/1.1表示协议版本。200表示状态码,(服务器告诉浏览器响应的状态是怎么样的,成功或者失败或者别的状态),OK是对状态码的英文描述。

2、响应头:

Content-Type:表示应响应内容的类型,比如text/html/image/jpeg。浏览器知道了响应内容的类型,会自动的选择对应的解析引擎进行解析。

Content-Length:表示应响应数据的长度(字节数)。

Content-Encoding:表示响应压缩算法,告诉浏览器我才用了哪种压缩方式进行压缩数据,浏览器会选择同样的压缩格式来解压缩。

Cache-Control:告诉浏览器该如何缓存数据,例如max-age=300,表示最多可以缓存300秒。第一次访问将数据存储到浏览器本地,第二次再访问的时候,直接读取本地数据。这样可以提高速度。

3、 响应体:

最后一部分,存放响应数据,浏览器解析这些响应数据就可以展示出来一个页面了。

常见的状态码有哪些? 

 Web服务器

Web服务器是一个应用程序(软件)。

他可以对HTTP协议进行封装,使我们不需要对协议直接操作,让Web开发更为高效快捷。

他可以将web项目部署到服务器中,对外提供网上浏览服务。

Tomcat

它是一个轻量级的Web服务器,支持Servlet/JSP和少量JavaEE(企业开发标准,比如说mybatis,maven之类的),也称之为web容器,servlet容器。

  bin目录下存放了一些可执行的文件,其中.bat是windows系统下可执行的文件,.sh是linux系统下可执行的文件。

conf目录下存放了一些配置文件。

lib目录下存放了依赖jar包,Tomcat是使用java语言编写的。

logs目录下存放的日志文件,如果出现500错误我们就需要去查看日志信息。

temp目录运行时产生的临时文件。

webapps目录存放我们需要运行的项目。

work目录下存放项目运行时临时产生的数据。

 Tomcat使用java编写的,所以运行时需要jdk的运行环境,如果全局变量出错找不到运行环境,会一闪而过启动失败。

Tomcat部署项目

将项目放到webapps目录下即可完成部署。

一般情况下,我们直接将文件夹打包移动速度会很慢,我们会将项目打包成war包,然后放到webapps目录下,Tomcat会自动完成文件解压。

在IDEA中创建Maven Web项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/520974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物联网时代25大开源IoT框架

相当长一段时间以来,互联网一直被用来连接人类并简化生活,这是21世纪初的启示。今天,我们将讨论各种物联网框架 —— 现在,我们正在进入一个基于互联网技术的新世界,该世界不仅连接人,而且还连接事物。因此…

实现分布式团队协作一体化的方法与技巧

多年来,零工经济平台的迅速兴起通过将自由职业者与支持按任务付费的企业联系起来,创造了多样化的就业机会。然而,能够接受临时工作安排既是福音又是祸根。在亚太地区,84%的招聘经理将工作外包给自由职业者。这背后的一个明显动机是…

Java对象创建和内存分配

Java对象创建流程如下步骤 判断是否加载类 当Java虚拟机执行一条new指令时,首先会检查这个指令的参数是否能在常量池中定位到类的符号引用,并且检查该类是否被加载、验证、准备、解析和初始化过。如果没有则执行加载过程。 给对象分配内存 对象所需的大…

【云原生】K8s管理工具--Kubectl(一)

Kubectl管理 一、陈述式管理1、陈述式管理方式2、Kubernetes相关信息查看3、查看节点状态4、命名空间操作5、deployment/pod操作6、扩缩容7、增加删除label 二、声明式管理1、声明式管理方式2、查看资源配置清单3、解释资源配置清单4、修改资源配置清单并应用5、删除资源配置清…

高级篇十三、事务基础知识

第13章_事务基础知识 1、数据库事务概述 事务是数据库区别文件系统的重要特性之一,当我们有了事务会让数据库始终保持一致性,同时我们还能通过事务的机制恢复到某个时间点,这样可以保证已提交到数据库的修改不会因为系统的崩溃而丢失&#…

网络通信-路由交换基础

目录 一、一个简单网络通信(1v1) 二、通信介质 三、交换机通信原理(3v3、5v5) 广播的概念 交换机转发消息时,怎么知道该发给哪个设备 四、路由器通信原理(500v500、5000v5000) 五、消息分…

App Inventor 2 算法之 - 二分算法(Binary Search)实现,快速查找定位

应用介绍 二分算法(Binary Search)是生活中非常常用的折半算法,能解决快速查找、快速定位的问题,主要用到数学和逻辑代码块。 本示例程序演示了采用普通遍历的方式和二分的方式分别需要几次能够猜中随机给出的数字。 二分算法&a…

k8s-CKS真题-故障排查Sysdig falco

目录 题目环境搭建安装sysdig创建容器创建目录、文件 解题 - sysdig解题 - falco错误模拟环境参考 题目 Task: 使用运行时检测工具来检测 Pod tomcat123 单个容器中频发生成和执行的异常进程。 有两种工具可供使用:sysdigfalco注:这些工具只…

如何有效提高企业优秀人才的留存率?

对于企业而言,有效的员工入职流程应是一个持续的项目。优秀人才使企业持续性发展的基石,那么该如何提高企业优秀人才的留存率呢? 有调查显示新员工入职后短时间内离职的比率日益上升,因此做好员工入职,短时间内增加员工…

msvcp140.dll是什么东西

昨天在打开photoshop软件的时候,突然间就提示msvcp140.dll丢失,无法打开运行。msvcp140.dll是什么东西呢?今天早上用了一个上午的时间,特意搞清楚了msvcp140.dll是什么以及如何修复电脑msvcp140.dll文件丢失问题。下面小编就把整理…

八年软件测试感悟--写给还在迷茫的你

不知不觉已经从事软件测试八年了,2015毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。八年的时间过得真快。 长期的测试工作也让我对软件测试有了比较深入的认识。但是我至今还是一个底层的测试人员,我的看法都比较狭隘&…

热乎的面经——水滴石穿

⭐️前言⭐️ 本文记录博主面试北京某大厂所记录的面经,回答答案仅供参考。 🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁 🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言 …

公网SSH远程访问家中的树莓派[无公网IP]

文章目录 前言如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址…

计算机视觉的深度学习 Lecture4:Regularization + Optimization 笔记 EECS 498.008

课件非常好! 数值计算梯度 问题是慢,每个都要注意做步长,求除法。 应该用求导方法解决。 SGD通过每次抽取一部分(mini-batch)来计算梯度,而不是遍历整个数据集来求梯度,大大增大了求梯度速…

18 KVM管理虚拟机-虚拟机生命周期总体介绍

文章目录 18 KVM管理虚拟机-虚拟机生命周期总体介绍18.1 概述18.2 虚拟机状态18.3 状态转换18.4 虚拟机标识 18 KVM管理虚拟机-虚拟机生命周期总体介绍 18.1 概述 为了更好地利用硬件资源,降低成本,用户需要合理地管理虚拟机。本节介绍虚拟机生命周期过…

零基础学网络安全

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 一…

spring的事物

这是我第三次接触事物了,mysql一次,以前的也看过一次。 事物的四大特点: 原子性:多条sql保证同时成功,同时失败。 一致性:在事物的开启和结束,数据库的完整性不被破坏。 隔离性:多线…

centos7 配置密钥登录

目录 1.xshell生成公钥 1.工具->新建用户密钥生成导向 2.选择4096下一步​编辑 3.输入用户密钥密码,也可以不输入 4.保存为文件 5.导出私钥文件 2.服务器配置 1.将公钥文件上传至服务器上 3.链接服务器 1.新建连接配置ip 2.设置用户身份验证 3.选择1.5上…

大疆无人机空三建模干货分享(大疆智图集群建模超详细教程)

Part 01 大疆无人机空三建模干货分享(大疆智图集群建模超详细教程) 大疆智图集群简介 大疆在今年5月推出的智图3.0.0及以上版本中加入了集群功能,有集群版许可的用户可以使用此功能。智图集群是由一台主节点分配任务控制多台同局域网内子节点设备进行空三和建模。集…

【Java零基础入门篇】第 ④ 期 - 继承(三)

【Java零基础入门篇】第 ④ 期 - 继承(三) 博主:命运之光专栏:Java零基础入门 学习目标 1.掌握继承性的主要作用、实现、使用限制; 2.掌握this和super的含义及其用法; 3.掌握方法覆写的操作; 4.…