java:Http协议和Tomcat

HTTP协议

Hyper Text Transfer Protocol

超文本传输协议,规定了浏览器和服务器之间数据传输的规则
请添加图片描述

特点:

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

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

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

优点

速度较快

缺点

多次请求间无法共享数据

HTTP请求数据格式

请添加图片描述

第一行为请求行,包含请求方式和协议

请求方式get
参数在请求行中,没有请求体,大小有限制
请求方式post
参数在请求体中,请求大小无限制

第二行开始请求头:格式为key:value键值对

换行进入请求体:post请求中用于存放相应参数.

Host:请求的主机名

User-Agent:浏览器版本,浏览器的标识

Accpet:表示浏览器能接受的资源类型

Accept-Language:表示浏览器偏好的语言,可以据此返回不同语言的网页

Accept-Encoding:表示浏览器可以支持的压缩类型

Content-Type:请求主体的数据单位

Content-Length:实体主体的大小(单位:字节)

HTTP响应格式

请添加图片描述

第一行为响应行,包含协议和状态码

1xx
//响应中-临时状态码,表示请求已经接受,告诉客户端应该继续请求,如果结束就可以忽略
2xx
//成功-表示请求已经被成功接收,处理已经完成
3xx
//重定向-重定向到其他地方,让客户端再次请求以完成整个处理
4xx
//客户端错误-处理发生错误,责任在客户端
eg:请求不存在资源,客户端未被授权,禁止访问
5xx
//服务器错误-处理发生错误,责任在服务端
eg:程序抛出异常

第二行开始为响应头,格式为key:value的键值对

换行进入响应体,其中存放响应数据

Content-Type
//表示该响应内容类型
eg:text/html,application/json
Content-length
//表示该响应内容的长度(字节数)
Content-Encoding
//表示该响应压缩算法
eg:gzip
Cache-Control
//指示客户端应该如何缓存
eg:max-age=300表示最多缓存300Set-Cookie
//告诉浏览器为当前页面所在的域设置cookie

常见状态码

状态码英文描述解释
200OK客户端请求成功,即处理成功,这是我们最想看到的状态码
302Found指示所请求的资源已移动到由Location响应头给定的 URL,浏览器会自动重新访问到这个页面
304Not Modified告诉客户端,你请求的资源至上次取得后,服务端并未更改,你直接用你本地缓存吧。隐式重定向
400Bad Request客户端请求有语法错误,不能被服务器所理解
403Forbidden服务器收到请求,但是拒绝提供服务,比如:没有权限访问相关资源
404Not Found请求资源不存在,一般是URL输入有误,或者网站资源被删除了
428Precondition Required服务器要求有条件的请求,告诉客户端要想访问该资源,必须携带特定的请求头
429Too Many Requests太多请求,可以限制客户端请求某个资源的数量,配合 Retry-After(多长时间后可以请求)响应头一起使用
431 Request Header Fields Too Large请求头太大,服务器不愿意处理请求,因为它的头部字段太大。请求可以在减少请求头域的大小后重新提交。
405Method Not Allowed请求方式有误,比如应该用GET请求方式的资源,用了POST
500Internal Server Error服务器发生不可预期的错误。服务器出异常了,赶紧看日志去吧
503Service Unavailable服务器尚未准备好处理请求,服务器刚刚启动,还未初始化好
511Network Authentication Required客户端需要进行身份验证才能获得网络访问权限

200: 成功

404: 请求资源不存在

500: 服务器端错误

HTTP-协议解析

Web服务器

一个应用程序,封装HTTP协议操作,减少程序员对协议的直接操作,使开发更加便捷.

这里使用

Tomcat
解析网页的请求,返回后端的响/

apache旗下的一个开源免费轻量级web服务器,支持Servlet/JSP少量JavaEE规范

JavaEE:java企业级开发的技术规范总和.

Tomcat:web容器,servlet容器,javaweb程序依赖于tomcat运行

Tomcat的基本使用

请添加图片描述

Tomcat默认端口号为8080

部署项目:

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

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

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

相关文章

OceanBase开发者大会实录 - 阳振坤:云时代的数据库

本文来自2024 OceanBase开发者大会,OceanBase 首席科学家阳振坤的演讲实录——《云时代的数据库》。完整视频回看,请点击这里 >> 在去年的开发者大会中,我跟大家分享了我对数据库产品和技术一些看法,包括单机分布式一体化&…

书生·浦语 大模型(学习笔记-9)OpenCompass 大模型评测实战

目录 一、评测实现双赢 二、评测遇到的问题 三、如何评测大模型(大概总结4大类方法) 四、评测工具链及流水线 五、实战评测 GPU的环境安装 查看支持的数据集和模型 启动评测(会缺少protibuf库,提前安装) 测评结果 一、评…

Android Studio实现内容丰富的安卓校园超市

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目代号168 1.开发环境 后端用springboot框架,安卓的用android studio开发 android stuido3.6 jdk1.8 idea mysql tomcat 2.功能介绍 安卓端: 1.注册…

【R语言简介】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共…

小程序AI智能名片S2B2C商城系统:实现分销模式的四大要件深度解析

在当前的电商领域,小程序AI智能名片S2B2C商城系统正以其独特的分销模式,引领着行业创新的风潮。这种模式的成功,离不开四大核心要件:商品、机制、平台和运营。接下来,我们将对这四大要件进行深度解析。 首先&#xff0…

直播美颜SDK工具解析:揭秘实时视频美颜处理技术

今天,小编将与大家共同探讨直播美颜SDK工具背后的实时视频美颜处理技术,揭秘其原理和工作机制。 一、美颜算法的发展 在美颜算法的发展过程中,深度学习技术的应用起到了至关重要的作用。经过大量、多次的不断重复训练,美颜的算法…

pycharm编辑器------快捷键

pycharm编辑器基础快捷键 上下文操作 01PyCharm 有数百个上下文相关操作,可以帮助您转换、改进和修正代码。按 AIt Enter 以调用“显示上下文操作"。 02我们来应用第一个快速修复:移除形参。 03您几乎可以在任何上下文中调用"显示上下文操作"。我们…

springboot实现gpt的eventstream案例

springboot实现gpt的eventstream案例 一、maven坐标 引入webflux依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></dependency>二、democontroller package org.e…

如何利用交易形态的失败进行现货黄金?

进行现货黄金理财&#xff0c;除了需要投资者对黄金投资有热情之外&#xff0c;有方法也是很重要的&#xff0c;光有热情而没有技术&#xff0c;我们的资金很可能会成为其他人的囊中之物。但如果有了现货黄金理财的技术&#xff0c;情况就可能扭转过来。下面我们就从买入的角度…

分享基于鸿蒙OpenHarmony的Unity团结引擎应用开发赛

该赛题旨在鼓励更多开发者基于OpenHarmony4.x版本&#xff0c;使用团结引擎创造出精彩的游戏与应用。本次大赛分为“创新游戏”与“创新3D 化应用”两大赛道&#xff0c;每赛道又分“大众组”与“高校组”&#xff0c;让不同背景的开发者同台竞技。无论你是游戏开发者&#xff…

数据库并发控制思维导图+大纲笔记

思维导图 大纲笔记 多用户数据库系统 定义 允许多个用户同时使用的数据库系统特点 在同一时刻并发运行的事务数可达数百上千个多事务执行方式 事务串行执行交叉并发方式 单处理机系统同时并发方式 多处理机系统事务并发执行带来的问题 产生多个事务同时存取同一数据的情况可能…

本地生活服务平台哪家强,怎么申请成为服务商?

当下&#xff0c;本地生活服务已经成为了多家互联网大厂布局的重要板块&#xff0c;在巨大的市场需求和强大的资本加持下&#xff0c;不少人都看到了本地生活服务平台广阔的前景和收益空间。在此背景下&#xff0c;许多普通人都跃跃欲试&#xff0c;想要成为本地生活服务商&…

Android --- SharedPreferences

SharedPreferences 对应sp文件的接口 使用 SharedPreferences API可以保存的相对较小键值对集合。SharedPreferences 对象指向包含键值对的文件&#xff0c;并提供读写这些键值对的简单方法。每个 SharedPreferences 文件均由框架进行管理&#xff0c;可以是私有文件&#xff…

Golang | Leetcode Golang题解之第52题N皇后II

题目&#xff1a; 题解&#xff1a; func totalNQueens(n int) (ans int) {columns : make([]bool, n) // 列上是否有皇后diagonals1 : make([]bool, 2*n-1) // 左上到右下是否有皇后diagonals2 : make([]bool, 2*n-1) // 右上到左下是否有皇后var backtrack func(int)…

多线程(安全 同步 线程池)

线程安全问题 多线程给我们的程序带来了很大性能上的提升&#xff0c;但是也可能引发线程安全问题线程安全问题指的是当多个线程同时操作同一个共享资源的时候&#xff0c;可能会出现的操作结果不符预期问题 取钱的线程安全问题 线程安全问题出现的原因&#xff1f; 存在多线…

JAVA实现easyExcel动态生成excel

添加pom依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version> </dependency><!--工具类--> <dependency><groupId>cn.hutool</groupId><…

OSPF的协议特性

路由汇总的概念 l 路由汇总&#xff08; Route Aggregation &#xff09;&#xff0c;又称路由聚合&#xff08;Route Summarization&#xff09;&#xff0c;指的是把一组明细路由汇聚成一条汇总路由条目的操作 l 路由汇总能够减少路由条目数量、减小路由表规模&#xff0…

Linux-进程和计划任务管理⭐

目录 一、程序和进程 1.程序 2.进程 3.线程与进程 二、ps查看静态进程信息 1.ps aux 命令 2.ps-静态查看系统进程 3.ps -elf 三、top-查看进程动态信息 四、pgrep查看进程信息 五、pstree-查看进程树 六、控制进程 1.进程启动方式 2.调度启动 3.进程的前后台调…

LeetCode //C - 38. Count and Say Medium Topics Companies

38. Count and Say The count-and-say sequence is a sequence of digit strings defined by the recursive formula: countAndSay(1) “1”countAndSay(n) is the way you would “say” the digit string from countAndSay(n-1), which is then converted into a differen…

Laravel 6 - 第十七章 配置数据库

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …