Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La API del servidor HTTP proporciona funcionalidad para que los usuarios almacenen fragmentos de datos en una memoria caché para su uso en respuestas HTTP que forman rápidamente.
Los fragmentos se pueden agregar a la memoria caché llamando a la funciónHttpAddFragmentToCache. Un fragmento se identifica mediante una dirección URL contenida en el parámetro pUrlPrefix. Una llamada a esta función con la dirección URL de un fragmento existente sobrescribe el fragmento existente.
El propietario de la cola de solicitudes puede eliminar o sobrescribir un fragmento que agregó inicialmente el fragmento. La función HttpFlushResponseCache llamada con un urlPrefix elimina todos los fragmentos de ese prefijo, así como los descendientes jerárquicos de ese urlPrefix. La función HttpReadFragmentFromCache lee en todo el fragmento o en un intervalo de bytes especificado dentro del fragmento.
Nota
Agregar un fragmento a la memoria caché no garantiza que esté disponible para futuras llamadas para enviar una respuesta. Las entradas de caché de fragmentos pueden dejar de estar disponibles en cualquier momento. Se produce un error en una llamada que usa un fragmento que no está disponible. Las aplicaciones que usan la caché de fragmentos deben estar preparadas para controlar este error.
Envío de una respuesta con un fragmento
Los fragmentos se pueden usar para formar todas o partes de un cuerpo de entidad de respuesta HTTP. Puede enviar una respuesta y un cuerpo de entidad en una llamada a la función httpSendHttpResponseespecificando una matriz de estructuras de HTTP_DATA_CHUNK en la estructura HTTP_RESPONSE.
Un HTTP_DATA_CHUNK puede especificar un bloque de memoria, un identificador para un archivo ya abierto o una entrada de caché de fragmentos. Estos corresponden a los tipos de HTTP_DATA_CHUNK: HttpDataChunkFromMemory, HttpDataChunkFromFileHandley HttpDataChunkFromFragmentCache, respectivamente. Las respuestas completas de la caché HTTP también se pueden usar como fragmentos en la estructura de HTTP_RESPONSE, aunque no se recomienda esta práctica.
La estructura HTTP_RESPONSE contiene un puntero a una matriz de estructuras HTTP_DATA_CHUNK que componen el cuerpo de entidad de la respuesta. La estructura HTTP_RESPONSE también contiene un recuento coincidente que especifica la dimensión de la matriz de estructuras de HTTP_DATA_CHUNK. El valor HttpDataChunkFromFragmentCache de la estructura HTTP_DATA_CHUNK especifica el tipo de caché de fragmentos del fragmento de datos. La estructura HTTP_DATA_CHUNK también especifica el nombre del fragmento.
Se produce un error en una respuesta que contiene un fragmento almacenado en caché con un ERROR_PATH_NOT_FOUND si alguna de las entradas de caché de fragmentos no está disponible. Dado que no se garantiza que las entradas de caché de fragmentos estén disponibles, las aplicaciones deben estar preparadas para controlar este caso. Una manera de controlar este caso es intentar volver a agregar la entrada de caché de fragmentos y reenviar la respuesta. Si se producen errores repetidos, la aplicación puede usar fragmentos de datos almacenados en búferes de memoria en lugar de entradas de caché de fragmentos.
También se pueden especificar entradas de caché de fragmentos en la funciónHttpSendResponseEntityBody. El fragmento se agrega al cuerpo de la entidad en la estructura HTTP_DATA_CHUNK como se ha descrito anteriormente. De nuevo, el envío puede producir un error si alguna de las entradas de caché de fragmentos especificadas no está disponible.