Http中的Content-Type详解

article/2025/9/12 6:19:20

Content-Type

        Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。

在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。它用来告诉服务端如何处理请求的数据,以及告诉客户端如何解析响应的数据,比如显示图片,解析并展示html等等。

HTTP 请求分为三个部分:状态行、请求头、消息主体。类似于下面这样:

<method> <request-URL> <version>

<headers>

<entity-body>

Http协议规定 POST 提交的数据必须放在消息主体(entity-body)中,但协议并没有规定数据必须使用什么编码方式。实际上,开发者完全可以自己决定消息主体的格式,只要最后发送的 HTTP 请求满足上面的格式就可以。

但是,数据发送出去,还要服务端解析成功才有意义。服务端通常是根据请求头(headers)中的 Content-Type 字段来获知请求中的消息主体是用何种方式编码,再对主体进行解析。所以说到 POST 提交数据方案,包含了 Content-Type 和消息主体编码方式两部分。下面就正式开始介绍它们。

Content-Type的格式:

Content-Type:type/subtype ;parameter

  • type:主类型,任意的字符串,如text,如果是*号代表所有;
  • subtype:子类型,任意的字符串,如html,如果是*号代表所有,用“/”与主类型隔开;
  • parameter:可选参数,如charset,boundary等。

例如:
Content-Type: text/html;
Content-Type: application/json;charset:utf-8;

常见Content-Type

常见的Content-Type有数百个,下面例举了一些

HTML文档标记:text/html;

  • 普通ASCII文档标记:text/html;
  • JPEG图片标记:image/jpeg;
  • GIF图片标记:image/gif;
  • js文档标记:application/javascript;
  • xml文件标记:application/xml;

上面的Content-Type,我们只认得就好,但是下面有4种是需要我们清楚他们的区别及牢记在心的。

四种常用的Content-Type

application/x-www-form-urlencoded

这应该是最常见的 POST 提交数据的方式了。HTTP会将请求参数用key1=val1&key2=val2的方式进行组织,并放到请求实体里面,注意如果是中文或特殊字符如"/"、","、“:" 等会自动进行URL转码。不支持文件,一般用于表单提交。

下面是一个例子:

  • 请求参数
    在这里插入图片描述
  • http 请求报文
    在这里插入图片描述

multipart/form-data

这又是一个常见的 POST 数据提交的方式。与application/x-www-form-urlencoded不同,这是一个多部分多媒体类型。首先生成了一个 boundary 用于分割不同的字段,在请求实体里每个参数以------boundary开始,然后是附加信息和参数名,然后是空行,最后是参数内容。多个参数将会有多个boundary块。如果传输的是文件,还要包含文件名和文件类型信息。最后以------boundary–为结束标识。multipart/form-data支持文件上传的格式,一般需要上传文件的表单则用该类型。

下面是一个例子:

  • 请求参数在这里插入图片描述
  • http 请求报文
    在这里插入图片描述

application/json

JSON 是一种轻量级的数据格式,以“键-值”对的方式组织的数据。这个使用这个类型,需要参数本身就是json格式的数据,参数会被直接放到请求实体里,不进行任何处理。服务端/客户端会按json格式解析数据(约定好的情况下)。

  • 请求参数
    在这里插入图片描述
  • http 请求报文
    在这里插入图片描述

application/xml 和 text/xml

与application/json类似,这里用的是xml格式的数据,text/xml的话,将忽略xml数据里的编码格式,参考。


http://chatgpt.dhexx.cn/article/sLASxMov.shtml

相关文章

HTTP(S)协议详解

1 什么是协议 协议&#xff0c;网络协议的简称&#xff0c;网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定&#xff0c;计算机之间才能相互通信交流。 粗俗理解协议就是 比如你的电脑和我的电脑要通信&#xff0c;&a…

详解Http的Content-Type

目录 1.概述 2.常用类型 2.1.application/x-www-form-urllencoded 2.2.application/json 3.Spring MVC支持的编码 3.1.实验 3.2.适配器 3.3.自定义适配器 1.概述 HTTP&#xff08;HyperText Transfer Protocol&#xff09;&#xff0c;超文本传输协议。超文本&#xf…

Http协议之Content-Type理解

Content-Type&#xff0c;翻译过来就是”内容类型“&#xff0c;在互联网中就是”互联网媒体类型“。 在互联网中&#xff0c;两台计算机经常会传输数据&#xff0c;客户端会给服务器发数据&#xff0c;服务器也会给客户端发数据。数据的类型也是有很多种的&#xff0c;我们把所…

tomcat修改jdk配置两种方法

由于一个电脑多个项目,可能会使用多个版本的jdk,所以在跑tomcat的时候,可以自定义配置的各项目所使用的jdk 配置步骤(window设置): 1. 在catalina.bat找到如下代码: echo Using JAVA_HOME: “%JAVA_HOME%” 替换成 echo Using JAVA_HOME: “E:\Company\Tool\jdk1.7.0_13” 如…

linux下jdk配置

一、jdk下载 jdk下载地址&#xff1a;https://www.oracle.com/java/technologies/downloads/ 二、配置环境变量 1、解压 tar -xvf jdk-11.0.13_linux-x64_bin.tar.gz 2、配置环境变量 修改/etc/profile文件 vim /etc/profile 文件末尾添加 #jdk JAVA_HOME/usr/local/a…

Mac多JDK配置

Mac多JDK配置 开发环境有时候需要配置多个JDK&#xff0c;Windows下配置比较方便&#xff0c;Mac环境下稍微有点曲折 下载对于的JDK 这里我以JDK8、JDK11为例&#xff0c;可以从oracle官网下载&#xff0c;也可以从国内源下载,比如华为源 直接安装后 执行如下命令可以快速…

eclipse及jdk配置

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来&#xff0c;JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心&#xff0c;包括了Java运行环境&#xff0c;Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台…

JDK配置Path的详细教程(包教包会)

在教程之前,先提示一下,新版本的JDK(比如17)是不需要我们配置的,因为我们在下载的时候已经自动给我们配置了,但是老版本(比如JDK8)是需要我们自己去配置的 OK,进入正题,我们先来说一下为什么要给jdk配置path环境? 首先,我们需要清楚的是jdk是java的开发工具,运行一个java程序…

多jdk配置

1.这里默认安装好jdk8和对应的环境变量,本文我们把jdk8的环境修改为jdk17(安装jdk17&#xff0c;下载安装版jdk17一直点下一步就行&#xff0c;没有好讲的) 2.系统CLASSPATH变量值为(下面都是在系统变量位置进行操作): .;%JAVA_HOME%\bin;%JAVA_HOME%\lib\tools.jar;%JAVA_HO…

Mac开发环境jdk配置

第一步&#xff1a; 下载JDK oracle 官网下载jdk版本 阿里云分享了已经在官方下载好的jdk8 阿里云盘分享https://www.aliyundrive.com/s/pNhjrrG3Pxf密码&#xff1a;8q8f 第二步骤&#xff1a;打开终端 第三步骤 &#xff1a;执行命令 查看JDK下载路径 执行命令&#xff1a;…

java中的jdk配置详解:

java中的jdk配置详解&#xff1a; 1.配值系统变量"JAVA_HOME" 变量名JAVA_HOME: 指向&#xff1a;JDK(java开发工具包)的安装路径 目的&#xff1a;使用JDK安装目录时&#xff0c;可以直接通过”%JAVA_HOME%“访问&#xff0c;避免路径过长麻烦 归一原则&#xff…

JAVA-JDK配置说明

JDK开发环境配置说明 JDK原理 JDK配置JDK与JRE区别 JDK下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html (注意查看本地电脑的版本&#xff0c;对应相同的系统&#xff0c;选择下载jdk) 目录 JDK开发环境配置说明 JDK下载地址…

jdk配置环境变量(win10)

jdk配置环境变量(win10) jdk跟环境变量的配置是学习java的必经之路&#xff01;你是否已经掌握呢&#xff1f; 1.下载安装jdk 官网下载&#xff1a;https://www.oracle.com/cn/java/technologies/downloads/#java8-windows 如果是要下载1.8版本的话&#xff0c;也可以用百度云…

linux JDK配置

1.JDK安装与配置 一般而言&#xff0c;Ubuntu系统会自带JDK&#xff0c;如果没有或者版本不合要求&#xff0c;可按以下步骤进行安装。步骤1 安装JDK。 步骤1 安装JDK。 将下载的.bin文件复制到Linux的某个目录下&#xff0c;比如/usr/lib/jvm/&#xff0c;然后在Shell中执行…

eclipse安装及jdk配置

一&#xff1a;eclipse的下载与安装 1、首先我们进入eclipse下载官网进行下载&#xff0c;链接为&#xff1a; Eclipse Downloads | The Eclipse Foundation 2、我们点击Download Packages选择其他类型的下载包&#xff1a; 3、Eclipse IDE for Java Developers 该版本适合Ja…

jdk配置环境变量

1.安装jdk&#xff0c;从官网下就行&#xff0c;我的是把原来的做了个备份&#xff0c;直接解压的。如下图 2.记录下你要配置的jdk路径。右键此电脑&#xff0c;属性&#xff0c;点击高级系统设置&#xff0c;选择环境变量。 3.现在就可以新建环境变量了。点击新建&#xff0c;…

JDK的安装与配置(含配置多个JDK)

对于Java学习者来说&#xff0c;一台电脑拿到手肯定要配置JDK&#xff0c;但是对于新手来说还是容易出错&#xff0c;我也是在安装了好几次之后才熟练&#xff0c;最近已经不满足JDK8了&#xff0c;想要配置多个JDK切换使用&#xff0c;所以写篇文章记录一下&#xff0c;希望也…

JDK的配置(附多个JDK配置方法)

第一步&#xff1a;下载并安装JDK 一、下载&#xff1a; JDK7和JDK8的安装包&#xff1a; https://pan.baidu.com/s/1nXOQ5KBJeA7YpllSX7spAQ 提取码&#xff1a;1201 二、安装&#xff1a; 安装一路next就完事了&#xff08;安装在便于寻找的文件夹下&#xff09; 注意&…

Jdk环境配置

以jdk8为例 1.打开jdk下载官网&#xff0c;下载jdk安装程序 https://www.oracle.com/java/technologies/downloads/#java8-windowsh 或者直接在此地址下载jdk8&#xff08;0积分&#xff09; jdk8安装包jdk-8u45-windows-x64-Java文档类资源-CSDN下载 2.打开安装程序 第一…

JDK的安装和配置

JDK的安装和配置 前言 JDK 全称 Java Development Kit&#xff0c;意为 Java 开发工具。 是 Java 程序员不可或缺的开发工具之一&#xff0c;本文来就来教大家如何安装和配置 JDK。注意&#xff1a;本文 Windows 系统以 Win10 为例&#xff0c;Linux 系统以 CentOS7.6 为例 文章…