récemment nous sommes passés au printemps 3.0 contrôleur de manutention comme ceci:Spring 3.0 HEAD Demande
@Controller
public class MyController {
@RequestMapping(method = RequestMethod.POST)
protected String onSubmit (Form form, Errors errors) {
// handle POST
}
@RequestMapping(method = RequestMethod.GET)
protected void getForm (Form form) {
// handle GET
}
}
Maintenant, nous recevons beaucoup d'exceptions dans nos journaux en raison des demandes de HEAD.
org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'HEAD' not supported
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodResolver.resolveHandlerMethod(AnnotationMethodHandlerAdapter.java:621)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:422)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:415)
...
Je voudrais soutenir HEAD demande la même façon que les requêtes GET, mais obéissant à la référence HTTP bien sûr:
La méthode HEAD est identique à GET sauf que le serveur NE DOIT PAS
renvoie un corps de message dans la réponse. La métainformation contenue dans les en-têtes HTTP en réponse à une demande HEAD DEVRAIENT être identiques aux informations envoyées en réponse à une demande GET . Cette méthode peut être utilisée pour obtenir métainformation environ l'entité impliquée par la demande sans transférer le corps entité lui-même. Cette méthode est souvent utilisée pour tester les liens hypertextes pour la validité, l'accessibilité et la modification récente . http://www.ietf.org/rfc/rfc2616.txt
Est-ce que quelqu'un a une solution élégante ou est-il même une solution de ressort hors-the-box? J'ai cherché sur le web, mais je n'ai trouvé aucune réponse à cela.
Qu'est-ce qui fait les demandes HEAD? Serait-ce une mauvaise configuration sur le client ou le code côté client (Javascript)? Je demande parce que généralement HEAD est destiné à vérifier les mises à jour de la page (c'est-à-dire les en-têtes Cache-Control/LastModified) afin que le navigateur puisse mettre à jour est nécessaire. – AngerClown
PycURL fait une requête méthode = head pour faire gets. Habituellement, j'ai trouvé que c'est très normal pour les moteurs de recherche tels que: oneriot.com, ask.com etc. –
qui se soucie quel outil fait la demande de HEAD. C'est une requête HTTP valide et de nombreux navigateurs la font réellement (en vérifiant des signets ou autre). – Janning