Estoy tratando de explicar los fundamentos de las aplicaciones web. Me encontré con esta pregunta en META-INF y WEB-INF. ¿Cómo esos directorios obtuvieron esos nombres?¿Por qué META-INF se llama META-INF?
Respuesta
Los archivos Jar son en realidad archivos ZIP con información adicional y posiblemente una mejor indexación. Al empaquetar la información adicional en el archivo ZIP, es importante ubicarlo en una ubicación que no sea probable que entre en conflicto con el contenido del archivo ZIP normal.
La selección de META-INF como un directorio en el que se puede almacenar información sobre el archivo JAR fue un intento de utilizar directorios como un espacio de nombre dentro del archivo ZIP. Básicamente, si estaba almacenado en META-INF, era información de metadatos, o (eligiendo entre los posibles significados de meta), "información propia" o "información abstracta".
Esto permitió el almacenamiento de información que podría afectar el manejo del archivo ZIP dentro del archivo ZIP, sin romper el empaquetado del archivo ZIP. Esto fue clave, ya que impidió la necesidad de crear un nuevo formato de compresión portátil y popularizarlo para el empaquetado de código Java. A medida que las personas se acostumbraron a la utilidad de META-INF, se crearon nuevos "espacios de nombres" en el archivo ZIP para formatos de empaque específicos, por ejemplo, "WEB-INF".
Las primeras "extensiones" del formato de archivo ZIP fueron la adición de un manifiesto, o MANIFEST.MF y la adición opcional de una lista de índice (para acelerar la extracción de elementos). Ahora, dichos archivos (debido a que tienen un espacio conocido para el nombre de la extensión) se han podido extender de muchas otras maneras, como la reciente adición de los "servicios" del subdirectorio para el registro del servicio.
Cuando considera que los archivos ZIP contienen archivos y directorios, tiene sentido usar un directorio como espacio de nombre.
(Punto de pedantería: los archivos Zip solo contienen archivos y no directorios. Sin embargo, los nombres de los archivos pueden ser bastante largos) –
@Tom, true. La ruta de Zip al nombre del archivo sirve como una entrada de directorio. Las rutas se convierten en directorios a petición durante la extracción de los archivos. Como este "directorio" está vinculado a un archivo, todavía sirve para los requisitos de espacio de nombre para los archivos JAR bastante bien; sin embargo, hace que sea imposible almacenar realmente un directorio independientemente de un archivo en un archivo ZIP. –
¡Gracias! Eso fue bastante perspicaz. Yo también creo que WEB-INF siguió la convención META-INF. –
Si recuerdo correctamente meta-inf es para metainformación. Esto puede ser totalmente incorrecto Si eso es correcto que probablemente podría adivinar que WEB-INF es para información de la web :-P
La pregunta fue cómo surgieron los nombres del directorio, no lo que significan. – jzd
El título es "por qué META-INF se llama META-INF" y expliqué lo que significa cada parte del nombre con guiones, dos por enlaces a artículos de Wikipedia y uno por conjetura (nunca he visto una referencia académica para el " Designaciones de INF ", pero cada anécdota que podría compartir indica que significa" información "). Si está buscando una etimología completa, english.stackexchange.com podría ser un lugar mejor, aunque creo que generalmente funcionan con palabras del diccionario, jerga y modismos. –
@Geordee, supongo que mi comprensión de la pregunta es, ¿por qué se llamó WEB-INF en comparación con WEB-INFO, por ejemplo. ¿Podría aclarar su pregunta? – jzd
- 1. ¿Por qué se llama RAII?
- 2. ¿Por qué se llama 'Cadena'?
- 3. ¿Por qué se llama nillable?
- 4. ¿Por qué se llama onBlur?
- 5. ¿Por qué se llama BSON?
- 6. ¿Por qué mi destructor nunca se llama?
- 7. ¿Por qué no se llama a Application.OnStartup?
- 8. ¿por qué textFieldDidEndEditing: no se llama?
- 9. ¿Por qué se llama una pseudo clase?
- 10. ¿Por qué se llama AJAX asincrónico?
- 11. ¿Por qué contextInitialized() se llama varias veces?
- 12. ¿Por qué paint()/paintComponent() nunca se llama?
- 13. ¿Por qué el archivo se llama catalina.out?
- 14. ¿Por qué onKey() se llama dos veces?
- 15. ¿Por qué __PRETTY_FUNCTION__ se llama __PRETTY_FUNCTION__?
- 16. ¿Por qué se llama .NET .NET?
- 17. ¿Por qué Node.js se llama Node.js?
- 18. ¿Por qué se llama onResume() cuando se inicia una actividad?
- 19. ¿Por qué no se llama a mi delegado de CLLocationmanager?
- 20. ¿Por qué PyPi se llama la tienda de queso?
- 21. Android: ¿por qué mi OnKeyListener() no se llama?
- 22. ¿Por qué before_save no se llama para mi modelo ActiveRecord?
- 23. ¿Por qué __init__ no se llama después __new__ A VECES
- 24. ¿Por qué 'dir()' se llama 'dir' en python?
- 25. ¿Por qué se llama varias veces al constructor HttpApplication?
- 26. ¿Por qué se les llama "la pandilla de los cuatro"?
- 27. ¿Por qué el verbo HTTP POST se llama POST?
- 28. ¿Por qué se llama al ContentObserver varias veces?
- 29. ¿Por qué no se llama mi manejador de señal?
- 30. Ver notificaciones de rotación: ¿por qué didRotateFromInterfaceOrientation: no se llama?
¿Cómo se produce algún nombre? Alguien lo eligió, probablemente por las razones que Isaac mencionó. En mayúscula, b/c ...., y luego el nombre simplemente quedó atascado. Es como preguntar por qué es 'http', cuando podría haber sido' htp: '.. simplemente un mejor meme, supongo –