📜  解释 URL 编码的概念 & 描述 HTML 中编码的必要性

📅  最后修改于: 2022-05-13 01:56:26.189000             🧑  作者: Mango

解释 URL 编码的概念 & 描述 HTML 中编码的必要性

URL(统一资源定位符)用于标识 WWW(万维网)上的 Internet 资源。下面的示例演示了一个 URL。

https://www.en.com:443/path/filename?r=1#fragment

该网址包含:

  • 协议或方案 (https://)
  • 域前缀(子域)(www.)
  • 一个域 (zh)
  • 顶级域 (.com)
  • 一个端口(:443)
  • 文件路径 (/path)
  • 一个文件名(文件名)
  • 查询字符串(?)
  • A 参数 (r=1)
  • 片段标识符 (#fragment)

URL 编码:当使用 POST 方法发出请求时,需要以某种方式对数据进行编码。 URL 的编码是指在 Internet 上以编码形式发送 URL,可以使用 ASCII字符集来完成。如果 URL 不包含 ASCII字符集中的数据,则需要转换。因此,URL 以可以通过 Internet 发送的方式进行格式化。如果 URL 包含空格,则将其替换为 ( + ) 符号或%20 (空格的 ASCII字符集)。

浏览器对 URL 输入的编码依赖于页面的字符集。 UTF-8 是 HTML5 的默认字符集。

需要在 HTML 表单中进行编码

由于处理表单输入时的安全问题,因此需要编码。

HTML 表单数据的编码方法是使用

标签的ENCTYPE属性指定的。 ENCTYPE 属性指定表单数据的编码方法。有两个值可以指定编码方法-

  • application/x-www-form-urlencoded:默认值。如果没有为 ENCTYPE 属性指定任何值,那么它会将这个值用于 HTML 表单。编码过程在数据发送到服务器之前执行,因为空格被转换为 (+) 符号,非字母数字字符或特殊字符被转换为十六进制 (0-9, AF) 值。

    句法:

    
    
  • multipart/form-data:它是另一种编码 HTML 表单的方式。它专门用于需要以 HTML 格式上传文件时。由于文件很大,它将表单数据分多个部分发送到服务器。

    句法:

ENCTYPE 属性的最后一个值是text/plain不推荐使用,因为数据没有以这种类型编码。

示例:使用 ENCTYPE=”application/x-www-form-urlencoded”。

HTML


  

    
        

URL Encoded Forms

        Username:         

        Password:         

             
  


HTML


  

    
        

URL Encoded Forms

        Username:         

        Password:         

        

Browse your file

           

             
  


输出 :

示例:使用 ENCTYPE=”multipart/form-data”

HTML



  

    
        

URL Encoded Forms

        Username:         

        Password:         

        

Browse your file

           

             
  

输出:服务器将处理请求并以 multipart/form-data 的边界参数显示结果。在这里,这些部分用边界分隔符“-”和“boundary”参数的值进行分隔。该字段在其数据(如表单数据)之前有一些子标题;字段名,文件名,后跟数据。

服务器读取数据直到下一个边界字符串。浏览器需要选择一个不会在任何字段中显示的边界,这也是边界可能因请求而异的原因。