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目录下即可完成部署

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图论基础知识 深度优先(Depth First Search, 简称DFS),广度优先(Breathe First Search, 简称DFS)

图论基础知识 学习记录自代码随想录 dfs 与 bfs 区别 dfs是沿着一个方向去搜,不到黄河不回头,直到搜不下去了,再换方向(换方向的过程就涉及到了回溯)。 bfs是先把本节点所连接的所有节点遍历一遍,走到下…

平安城市 停车场 景区对讲SV-6201-T IP网络非可视对讲报警柱简介

平安城市 停车场 景区对讲SV-6201-T IP网络非可视对讲报警柱简介 18123651365微信 功能特点: 全金属外壳,户外防风雨,坚固耐用,易于识别单键呼叫,可通过软件指定呼叫目标,双向对讲广播喊话终端内置扬声器…

LabVIEW连接PostgreSql

一、安装ODBC 下载对应postgreSQL版本的ODBC 下载网址:http://ftp.postgresql.org/pub/odbc/versions/msi/ 下载好后默认安装就行,这样在ODBC数据源中才能找到。 二、配置系统DSN 实现要新建好要用的数据库,这里的用户名:postg…

SpringCloud 之 服务消费者

前提 便于理解我修改了本地域名》这里!!! 127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.comRest学习实例之消费者 创建一个消费者去消费 消费者模块展示 1、导入依赖 <!-- 实体类api自己创建的模块 Web 部分依赖展示--><depe…

57-VPX电路设计

视频链接 VPX连接器电路设计01_哔哩哔哩_bilibili VPX接口电路设计 1、VPX介绍 1.1、VPX简介 VPX总线是VITA(VME International Trade Association, VME国际贸易协会)组织于2007年在其VME总线基础上提出的新一代高速串行总线标准。VPX总线的基本规范、机械结构和总线信号等…

Golang特殊init函数

介绍 init()函数是一个特殊的函数&#xff0c;存在一下特性 不能被其它函数调用&#xff0c;而是子main()函数之前自动调用不能作为参数传入不能有传入参数和返回值 作用&#xff1a; 对变量进行初始化检查/修复程序状态注册运行一次计算 以下是<<the way to go>>…

(开源版)企业AI名片S2B2C商城系统商业计划书

团队使命 擎动人工智能跃迁&#xff0c;融技术与商业之行 项目背景 话说2022年12月7日那天&#xff0c;国务院大大发布了个重磅消息&#xff0c;宣布咱们国家的三年抗疫大战终于告一段落&#xff0c;全面放开啦&#xff01;这意味着咱们的市场经济要重新焕发生机啦&#xff…

【EI会议|稳定检索】2024年航空航天、空气动力学与自动化工程国际会议(ICAAAE 2024)

2024 International Conference on Aerospace, Aerodynamics, and Automation Engineering 一、大会信息 会议名称&#xff1a;2024年航空航天、空气动力学与自动化工程国际会议 会议简称&#xff1a;ICAAAE 2024 收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Schol…

短袖面料有哪些种类?质量好的短袖品牌实测推荐

夏天确实是一个让人感到炎热的季节&#xff0c;而选择合适的短袖对于提高穿着的舒适度和避免不必要的困扰非常重要。所以为了让大家能够选到一些合适自己而且质量好短袖&#xff0c;今天为大家总结了几点关键的选购技巧或一些知识科普&#xff01;并且结合我近期测评过的众多短…

【C++ STL序列容器】list 双向链表

文章目录 【 1. 基本原理 】【 2. list 的创建 】2.1 创建1个空的 list2.2 创建一个包含 n 个元素的 list&#xff08;默认值&#xff09;2.3 创建一个包含 n 个元素的 list&#xff08;赋初值&#xff09;2.4 通过1个 list 初始化另一个 list2.5 拷贝其他类型容器的指定元素创…

Qt : 在QTreeWidget中添加自定义右键菜单

一、引言 如图&#xff0c;我们需要在一个QTreeWidget 控件中添加了自定义右键菜单。 二、思路 如何做到的呢&#xff0c;很简单。浅浅记录和分享一下。 继承QTreeWidget&#xff0c;定义一个子类CustomTreeWidget &#xff0c;在重写contextMenuEvent 事件即可。 三、代…

【MySQL】InnoDB与MyISAM存储引擎的区别与选择

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。 存储引擎是基于表的&#xff0c;而不是基于库的&#xff0c;所以存储引擎也可被称为表类型。我们可以在创建表的时候&#xff0c;来指定选择的存储引擎&#xff0c;如果没有指定将自动选择默认的存储引擎。…

深浅拷贝及其现代写法

#include<iostream> using namespace std; class Person { public://默认构造Person(){cout << "Person()" << endl;}//有参构造函数Person(int age,int height){m_age age;m_height new int(height);cout << "Person(int age, int h…

centos7搭建maven私服nexus

1.nexus Nexus Repository Manager&#xff08;通常简称 Nexus 或 Nexus RM&#xff09;是由Sonatype公司开发的一款开源的、强大的软件仓库管理工具&#xff0c;主要用于企业级的二进制组件&#xff08;如Java库、Node.js模块、Python包等&#xff09;存储、管理和分发。 官方…

DRF学习之三大认证

一、认证 1、自定义认证 在前面说的 APIView 中封装了三大认证&#xff0c;分别为认证、权限、频率。认证即登录认证&#xff0c;权限表示该用户是否有权限访问接口&#xff0c;频率表示用户指定时间内能访问接口的次数。整个请求最开始的也是认证。 &#xff08;1&#xff…

Unity射击游戏开发教程:(3)如何销毁游戏对象 ,添加CD

在 Unity 中销毁游戏对象 在我之前的文章中,我写了关于实例化或创建激光预制体,当发射时,激光预制件将继续在屏幕上移动一段时间。 创建所有这些激光预制件后,最终会减慢游戏速度,因此我们必须通过创建激光预制件来找到平衡,在屏幕上移动直到它超出游戏视图,然后销毁它…

【RAG 论文】Adaptive-RAG:自适应地根据 query 难度来选择合适的 RAG 模型

论文&#xff1a;Adaptive-RAG: Learning to Adapt Retrieval-Augmented Large Language Models through Question Complexity ⭐⭐⭐⭐ Code&#xff1a;github.com/starsuzi/Adaptive-RAG NAACL 2024&#xff0c;arXiv:2403.14403 文章目录 一、论文速读二、实现细节2.1 三种…

GitHub/R3D3项目环境配置踩坑记录

1、前言 项目链接地址&#xff1a;SysCV/r3d3 (github.com) 按照安装步骤容易出现的问题&#xff0c;environment.yaml文件中安装相关包&#xff0c;其中还有两个pip install githttps://github.com/..........这两个建议注释掉&#xff0c;后面再来安装这两个。 2、问题及解…

下载六佰之际暨 SDK+Plugin 升级

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace 这几个版…

Qt图片等资源管理

Qt的图片等资源管理通常有两种方式 1&#xff0c;直接将图标和一些配置文件打包在可执行程序中 添加qrc文件&#xff0c;可使用qtcreator直接添加 右键选中工程 点击选择即可。 然后添加文件。我这个例子是添加了Image文件夹下的图片资源 使用的时候&#xff0c;可以在代码…