Spring Boot. ¿Cómo probar la versión del protocolo http?
Estoy usando Spring Boot 2.6.0
y Spring MVC
en mi aplicación.
Quiero cambiar el protocolo del controlador de la versión http/1.1
a http/2
.
En primer lugar, he escrito el siguiente test de integración para eso:
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class PruebaDeIntegracion {@Autowired
private TestRestTemplate template;
@Test
public void puedeObtener() {
ResponseEntity<JsonResponse> entity = template.getForEntity("/foo", JsonResponse.class);
assertEquals(HttpStatus.OK, entity.getStatusCode());
assertNotNull(entity.getBody());
//todo: assertEquals("http/2", entity.getProtocol());
//todo: assertEquals("http/1.1", entity.getProtocol())
}
}
Pero el método entity.getProtocol()
no existe y no puedo encontrar otra forma de comprobar la versión del protocolo. ¿Alguien sabe cómo probar correctamente la versión del protocolo en una aplicación de Spring Boot?
davy.ai
Lamentablemente, no hay una manera directa de probar la versión del protocolo en una aplicación Spring Boot. El método
getProtocol()
no está disponible en la claseResponseEntity
. Sin embargo, hay algunas otras formas de verificar que la versión del protocolo se ha cambiado ahttp/2
.Una forma es utilizar una herramienta de análisis de red como Wireshark para capturar el tráfico de red entre el cliente y el servidor. Wireshark puede decodificar los paquetes y mostrar la versión del protocolo utilizada en los mensajes HTTP. Esto requiere ejecutar la aplicación y realizar la prueba mientras se captura el tráfico de red.
Otra forma es configurar el servidor para que registre la versión del protocolo para cada solicitud. Esto se puede hacer agregando un interceptor HTTP personalizado que registra la versión del protocolo para cada solicitud. Aquí hay un ejemplo:
Este interceptor registra la versión del protocolo para cada solicitud. Para habilitarlo en la aplicación, agréguelo al registro de interceptores en la configuración de Spring MVC:
Con este interceptor habilitado, se registrará la versión del protocolo para cada solicitud. En la prueba de integración, puede verificar la salida de registro para verificar que la versión del protocolo se ha cambiado a
http/2
.