zoukankan      html  css  js  c++  java
  • 《HTTP

    一:引言

      在此之前先看一个小例子:(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

  • 相关阅读:
    FluentValidation 验证框架笔记1
    AutoMapper 笔记1
    MediatR框架笔记1
    vscode调试python时提示无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的解决方法
    Selenium使用自带浏览器自动化
    Selenium启动Chrome插件(Chrome Extensions)
    Gitee,Github 图片转直链
    CentOS 7.3 修改root密码 passwd: Authentication token manipulation error
    阿里云服务器 被入侵植入dhpcd导致cpu飙升100%问题
    Github 切换分支
  • 原文地址:https://www.cnblogs.com/25-lH/p/9152024.html
Copyright © 2011-2022 走看看