Http 请求协议

ops/2024/11/27 12:04:07/

        HTTP的请求协议

        请求数据格式:

        请求行

        请求数据的第一行,包含请求方式、资源路径、协议及版本。

        请求头

        从请求数据的第二行,以key: value的格式

        常见的请求头

        Host:请求的主机名,如:localhost:8080(Tomcat服务器的默认端口号)

         User-Agent:发起请求的浏览器版本;例如:Chrome的浏览器标识Mozilla/5.0...Chrome/79 ;IE的浏览器的标识符类似Mozilla/5.0(Windows NT ...) like Gecko

         Accept:表示浏览器能够接收的数据类型,如:Application/json(json),text/*(文本),image/*(图片),* /*表示所有类型

         Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页(zh-CN是中文;EN是英文)

         Accept-Encoding:表示浏览器支持的压缩类型,如:gzip,deflate等

         只有Post方式的请求才有请求体,Get方式请求是没有请求体的

        Content-Type:请求主体的数据类型,比如application/json;charset=UTF-8(UTF-8的json数据) Content-Length:请求主体的大小(字节)

        请求体

        和请求头之间间隔了一个空行 必须是Post方式的请求才有请求体,用于存放请求参数,Post请求的大小是没有限制的(一般是json数据格式) Get方式请求的参数是在请求行中的(直接在请求的资源路径后面拼接),是有大小限制的

        通过tomcat服务器封装的HttpRequest对象操作请求数据

package com.wzb;import jakarta.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;// 使用@RequestController将该类设置为请求处理类
@RestController
public class HTTPRequest {/*** 操作HttpServletRequest类获取请求数据* @param request* @return*/@RequestMapping("/request")public String request(HttpServletRequest request) {/*HTTP协议——请求数据的获取Web服务器(Tomcat)对HTTP协议的请求数据进行解析,并将其封装到了HttpServletRequest中,在调用Controller方法的时候,将其传递给了该方法,使得程序员不用直接对协议进行操作,只关注于项目的业务逻辑处理在程序中可以通过HTTPServletRequest中的方法获取HTTP的请求数据*/// 1.获取请求参数(假如说参数有name和age)String name = request.getParameter("name"); // 需要传入参数名即可String age = request.getParameter("age");System.out.println("name=" + name + " age=" + age);// 2.获取请求路径uri和url     url是完整的请求路径 uri是资源的访问路径String uri = request.getRequestURI();String url = request.getRequestURL().toString(); // 原始的类型是StringBuffer,需要使用toString方法转换为String// 3.获取请求头     User-AgentString userAgent = request.getHeader("User-Agent");System.out.println("userAgent = " + userAgent);// 4.获取请求方式String method = request.getMethod();System.out.println("请求方式是" + method);// 5.获取请求协议String protocol = request.getProtocol();System.out.println("请求协议是" + protocol);// 6.获取请求的查询字符串String queryString = request.getQueryString();System.out.println("请求的查询字符串是" + queryString);return "request success";}
}

        


http://www.ppmy.cn/ops/137075.html

相关文章

Qt界面篇:QMessageBox高级用法

1、演示效果 2、用法注意 2.1 设置图标 用于显示实际图标的pixmap取决于当前的GUI样式。也可以通过设置icon pixmap属性为图标设置自定义pixmap。 QMessageBox::Icon icon(

常见线程安全问题之复合操作

创作内容丰富的干货文章很费心力,感谢点过此文章的读者,点一个关注鼓励一下作者,激励他分享更多的精彩好文,谢谢大家! 复合操作的问题本质上和 TOCTOU 是一样的,如果有多个操作(如同一变量的读写…

解决 java -jar 报错:xxx.jar 中没有主清单属性

问题复现 在使用 java -jar xxx.jar 命令运行 Java 应用程序时,遇到了以下错误: xxx.jar 中没有主清单属性这个错误表示 JAR 文件缺少必要的启动信息,Java 虚拟机无法找到应用程序的入口点。本文将介绍该错误的原因以及如何通过修改 pom.xm…

工作坊报名|使用 TEN 与 Azure,探索你的多模态交互新场景

GPT-4o Realtime API 发布,语音 AI 技术正在进入一场新的爆发。语音AI技术的实时语音和视觉互动能力将为我们带来更多全新创意和应用场景。 实时音频交互: 允许应用程序实时接收并响应语音和文本输入。自然语音生成: 减少 AI 技术生成的语音…

多任务基础知识学习

一、单任务与多任务的区别: 学习链接:https://zhuanlan.zhihu.com/p/27421983 多任务学习:单模型解决多个问题_什么是单任务模型-CSDN博客 SingleTask: Train one model for each task, respectively 多任务学习(Multi-Task Leamning,MTL)是机器学习只…

微信小程序中会议列表页面的前后端实现

题外话:想通过集成腾讯IM来解决即时聊天的问题,如果含语音视频,腾讯组件一年5万起步,贵了!后面我们改为自己实现这个功能,这里只是个总结而已。 图文会诊需求 首先是个图文列表界面 同个界面可以查看具体…

java框架Netty网络编程——问鼎篇

Netty进阶 01 初识 Netty:为什么 Netty 这么流行? 粘包现象 案例 服务端代码 public static void main(String[] args) {NioEventLoopGroup bossGroupnew NioEventLoopGroup(1);NioEventLoopGroup workerGroupnew NioEventLoopGroup(2);try {ServerBoo…

对比C++,Rust在内存安全上做的努力

简介 近年来,越来越多的组织表示,如果新项目在技术选型时需要使用系统级开发语言,那么不要选择使用C/C这种内存不安全的系统语言,推荐使用内存安全的Rust作为替代。 谷歌也声称,Android 的安全漏洞,从 20…