zoukankan      html  css  js  c++  java
  • 为什么要对URI进行编码?

    传递数据中,如果存在用作分隔符的保留字符应该怎么办?

    对可能产生歧义性的数据编码

    • 不在ASCII码范围内的字符  (ASCII等字符编码详解:https://blog.csdn.net/Deft_MKJing/article/details/79460485
    • ASCII码中不可显示的字符
    • URI中规定的保留字符
    • 不安全字符(传输环节中可能会被不正确处理),如空格、引号、尖括号等

    如:

    https://www.baidu.com/s?wd=?#!

    https://www.baidu.com/s?wd=冯小圆    博客

    https://www.baidu.com/s?wd=小圆 ‘>博客

    保留字符与非保留字符

    保留字符:

    reserved = gen-delims / sub-delims

    • gen-delims = ":" / "/" / "#" /  "[" / "]" / "@"
    • sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "=" / ";" / ","

    非保留字符:

    unreserved = APLHA / DIGIT / "-" / "_" / "." / "~"

    • APLHA :%41-%5A and %61-%7A
    • DIGIT:%30-%39
    • -: %2D .:%2E  _:%5F
    • ~: %7E ,某些实现将其认为保留字符

    百分号编码方式:

    pct-encoded  =  "%" HEXDIG HEXDIG

    对于HEXDIG  十六进制中的字母,大小写等价

    非ASCII码字符(例如中文):建议先UTF-8编码,再 US-ASCII 编码

    对于URI合法的字符,编码和不编码是等价的

    例如,"URI转换"既可以是"URI%e8%bd%ac%e6%8d%a",也可以"%55%52%49%e8%bd%ac%e6%8d%a"

  • 相关阅读:
    Mysql任务调度
    使用 IntraWeb (18)
    使用 IntraWeb (17)
    替盛大代发的招聘启示
    使用 IntraWeb (16)
    使用 IntraWeb (15)
    使用 IntraWeb (14)
    使用 IntraWeb (13)
    使用 IntraWeb (12)
    使用 IntraWeb (11)
  • 原文地址:https://www.cnblogs.com/fengxiaoyuan/p/10927419.html
Copyright © 2011-2022 走看看