一:引言

  在此之前先看一个小例子:(html 上传文件,服务端为PHP)

  • <?php
    var_dump($_FILES);?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8" />
    <title>Page Title</title>
    </head>
    <body>
    <form action="" method="POST">
    <input type="file" name="file">
    <input type="submit" value="submit">
    </form>
    </body>
    </html>
  - $_FILES 会获取到值么?

  - 如果不是很清楚或者觉得可以获取到,那么可以接着看看。

二:什么是 Content-Type?

  - 通俗理解的的话,它就是我们规定发送数据包的一种类型,就像我们寄快递一样。不同的包裹 (Content-Type) 有不同的包装方式。

  - 接收方也会根据这个类型来进行下一步操作。

三:Content-Type 作用?

  - Content-Type用于指定内容类型,一般是指网页中存在的Content-Type,Content-Type属性指定请求和响应的HTTP内容类型。

  - 如果未指定 ContentType,默认为text/html。

  - HTTP 中,本身是不存在各种格式的,Content-type 的作用,更是为了标明双方格式交互的数据格式。

  - 在nginx中有个配置文件mime.types,主要是标示Content-Type的文件格式。

  - 下面是几个常见的Content-Type:

    - text/html

    - text/plain

    - text/css

    - ext/javascript

    - application/x-www-form-urlencoded

    - multipart/form-data

    - application/json

    - application/xml

    ...

  前面都是html,css,javascript的文件类型,后面四个是POST的发包方式。

四:application/x-www-form-urlencoded

  - 是常用的表单发包方式,普通的表单提交,或者js发包,默认都是通过这种方式。

  - 这种发包形式的数据,在PHP使用 $_POST 可以直接获取。

五:multipart/form-data

  - 用在发送文件的POST包。

  - 

  - 这里Content-Type告诉我们,发包是以multipart/form-data格式来传输,另外,还有boundary用于分割数据。

  - 这也解释了为什么上面小例子中无法获取文件,因为它的 Content-type 是不能获取上传的文件的

六:application/json

  - 只是为了标明 数据类型为 JSON

  - 获取 json 数据请使用

    - $data = file_get_contents('php://input');

  - 

七:其余类型

  - 其余类型和 application/json 同理   

  - 获取对应的数据类型,在进行解码 

八:参考

  - 理解HTTP之Content-Type

《HTTP - 理解 Content-Type》的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. ③NuPlayer播放框架之类NuPlayer源码分析

    [时间:2016-10] [状态:Open] [关键词:android,nuplayer,开源播放器,播放框架] 0 引言 差不多一个月了,继续分析AOSP的播放框架的源码.这次我们需要深入分析的是N ...

  2. Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置

    上一篇文章说了如何修改Android自带Launcher2的默认界面设置(http://www.cnblogs.com/mythou/p/3153880.html). 今天主要是说说Launcher里 ...

  3. Mysql字符串字段中是否包含某个字符串,用 find_in_set

    有这样一个需求,在Mysql数据库字符串字段(权限)中,有范围在 1 到 N 之间代表不同权限的值,分别被‘,’分开,现在要取出具有某权限的所有成员列表. 创建表:   1 CREATE TABLE ...

  4. Fixed Partition Memory Management UVALive - 2238 建图很巧妙 km算法左右顶点个数不等模板以及需要注意的问题 求最小权匹配

    /** 题目: Fixed Partition Memory Management UVALive - 2238 链接:https://vjudge.net/problem/UVALive-2238 ...

  5. 3D 特征点概述(2)

    还是紧接着上一文章的思路继续介绍3D特征点的基本概念问题,还是这个表格: Feature Name Supports Texture / Color Local / Global / Regional ...

  6. Java知多少(100)图像处理基础

    图像是由一组像素构成,用二进制形式保存的图片.java语言支持GIF.JPEG和BMP这3种主要图像文件格式.java语言的图像处理功能被封装在Image类中. 图像载入和输出 在java程序中,图像 ...

  7. 《深入理解Java虚拟机》读书笔记:垃圾收集器与内存分配策略

    请移步至:http://zhanjindong.info/2014/05/18/java-gc/

  8. Linux时间变慢解决方法

    情景:系统为CentOS-5.4,硬件时间正确(查看硬件时间的方法见下面),系统时间每隔24小时会慢20分钟左右Linux将时钟分为系统时钟(System Clock)和硬件(Real Time Cl ...

  9. mongodb查询数据库中某个字段中的值包含某个字符串的方法

    正则表达式最能解决: 例如: db.getCollection(.*$/}) 这里主要是注意正则表达式要写对,该转义的注意转义,否则报错.

  10. 创建sequence和触发器出现权限不足

    解决方式: 已sysdba登陆后,进行授权 grant create any sequence to [用户]创建sequence权限不足解决方法 grant create trigger to [用 ...