Me topé con esto por accidente al escribir mal la URL de una página web en mi navegador web.
¿Por qué las visitas http://example.com/%provocan un error HTTP 400 Bad Request? ¿El servidor espera algo más después o antes del signo de porcentaje?
Parece suceder para los servidores Apache y Nginx.
(Servidor: cloudflare-nginx) /superuser//%

(Servidor: Apache) http://mozilla.org/%

apache-http-server
webserver
http
nginx
iglvzx
fuente
fuente

Respuestas:
Respuesta corta
Según RFC 3986 , un
%carácter simple no es una sintaxis de URI válida ; debe ir seguido de dos dígitos hexadecimales significativos .Respuesta larga
El código de estado HTTP que obtuvo pertenece a la
4xxclase:En particular, el código
400está definido por el Grupo de trabajo de ingeniería de Internet (IETF) en RFC 2616:Citando Wikipedia (énfasis en negrita mío):
Si desea insertar un literal
%símbolo, es necesario utilizar la representación codificada por ciento-:%25.Otras lecturas
fuente
RewriteRule (.*) xyz/$1(donde xyz es cualquier nombre de carpeta) en .htaccess, debe codificar dos veces% como% 2525.El signo de porcentaje es para insertar un carácter que normalmente no es compatible con la url. Por ejemplo,% 20 es lo mismo que un espacio.
fuente
%25+es un método abreviado para codificar un espacio. Si desea un signo más real, use su código hexadecimal,% 2B.