Giter Club home page Giter Club logo

Comments (1)

yhojann-cl avatar yhojann-cl commented on July 29, 2024

Es normal, según el estándar un espacio en blanco puede ser + o %20, de hecho php en la función urlencode utiliza + para ahorrar bytes. Asi que una URL con espacios en blanco puede llevar + sin problemas.

En el caso de tu ejemplo, el problema se encuentra del lado del blog el cual no está procesando correctamente las URLs de forma estandar, el problema no es de meneame sino del blog, de hecho lo mismo sucede con algunos enlaces que tienen letras "ñ". Hay que recordar que por temas de SEO nunca es recomendable tener un permalink con espacios en blanco.

Según el RFC de HTTP la primera línea consta del método, ruta y versión del protocolo, por ejempo:

GET /abc-def HTTP/1.1

El mismo estándar indica que la primera línea de la cabecera de la solicitud HTTP (que realiza el navegador WEB) consta únicamente de 3 partes, no de 4 o 5 y cada parte está separado por un espacio en blanco \x20, no un tab ni un salto de línea, por lo cual, ¿qué sucede cuando la URL tiene un espacio en blanco?, la solución es codificar la ruta utilizando el estándar de URI Path, o sea, convirtiendo los caracteres especiales en valores hexadecimales anteponiendo un signo % salvo algunas excepciones como el espacio en blanco el cual puede ser +. Asi que cuando en la URL del navegadr WEB ves un espacio en blanco realmente el servidor está recibiendo un %20 o + y este de forma automática según el estándar lo decodifica y lo transforma en ruta.

Por lo que veo el blog utiliza un framework hecho en GoLang el cual carece de buenas prácticas en cuanto al uso de estándares, mejor te recomiendo algún framework que utilice una capa superior al servicio WEB, por ejemplo, puedes utilizar Nginx como capa superior de exposición para interpretar y filtrar las rutas estandarizadas y luego utilizar algun servicio como Java Spring, php laravel, .NET MVC5 o NodeJS Express, los cuales ya cuentan con componentes que pueden ayudar a resolver las rutas de forma automática y estandarizada.

from meneame.net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.