Puis-je modifier les en-têtes de la requête HTTP envoyée par le navigateur?
Je suis à la recherche dans une bonne conception et souhaitez utiliser les méthodes HTTP (POST
, GET
, ...) et les en-têtes HTTP autant que possible. J'ai déjà trouvé que les méthodes HTTP PUT
et DELETE
ne sont pas pris en charge à partir du navigateur.
Maintenant, je suis à la recherche pour obtenir des représentations différentes d'une même ressource et voudrais le faire en modifiant le Accept
en-tête de la demande. Selon cette Accept
en-tête, le serveur peut servir d'un point de vue différent sur la même ressource.
Problème est que je n'ai pas trouver un moyen de dire à mon navigateur pour changer cet en-tête.
La <a..>
balise a un l'attribut type, qui peuvent avoir un type mime, regardé comme un bon candidat, mais l'en-tête est toujours le navigateur par défaut (dans Firefox, il peut être modifié dans about:config
avec le network.http.accept.default
clé).
- Je vous entends. Il serait bien de coder en dur des en-têtes et dans votre onglet de navigateur il suffit de visiter l'Url pour tester votre code. Je ne veux pas d'une véritable interface séparée comme le Chrome Facteur app.
- Cette extension fonctionne très bien pour moi: chrome.google.com/webstore/detail/modify-headers-for-google/...
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que c'est possible de le faire dans la façon dont vous êtes en train de le faire.
Indication de la accepté de format de données se fait généralement par le biais de l'ajout de l'extension du nom de ressource. Donc, si vous avez des ressources comme
et
GET /resources/resource
retourne sa représentation HTML, pour indiquer que vous voulez de sa représentation XML au lieu de cela, vous pouvez utiliser le modèle suivant:Vous avez accepté de type de contenu de la détermination de la magie sur le côté serveur, donc.
Ou de l'utilisation du Javascript, James suggère.
Je voudrais partiellement en désaccord avec Milan suggestion de l'intégration de la demande de représentation dans l'URI.
Si de toute façon possible, Uri doit uniquement être utilisée pour l'adressage des ressources et pas pour le tunneling HTTP méthodes/verbes. Finalement, spécifique de l'action entreprise (modifier, de verrouillage, etc.) pourrait être intégré dans l'URI, si créer des (POST) ou de mise à jour (METTRE) ne suffisent pas à répondre à l'objectif:
Dans le cas de la demande d'une représentation particulière en URI que vous auriez besoin de perturber votre URI conception éventuellement rend plus laid, le mélange de deux distinctes RESTE concepts dans le même endroit (c'est à dire URI) et rend plus difficile le terme générique de traiter des requêtes sur le serveur-côté. Ce Milan est en train de suggérer et nombreux sont en train de faire la même chose, incl. Flickr, c'est exactement ce.
Au lieu de cela, un de plus Reposant approche serait la à l'aide d'un endroit séparé pour encoder préféré représentation en utilisant
Accept
en-tête HTTP qui est utilisé pour la négociation de contenu où le client indique au serveur quels types de contenu, il peut gérer/le processus et le serveur tente de répondre à la demande du client. Cette approche est une partie de HTTP 1.1, les logiciels compatibles et pris en charge par les navigateurs web ainsi.Comparer ce:
à ceci:
À partir d'un navigateur web vous pouvez demander à tout type de contenu en utilisant
setRequestHeader
méthode deXMLHttpRequest
objet. Par exemple:Pour résumer: l'adresse, c'est à dire l'URI d'une ressource doit être indépendant de sa représentation et de
XMLHttpRequest.setRequestHeader
méthode permet de demander la représentation à l'aide de laAccept
en-tête HTTP.Cheers!
Shonzilla
XML
de ressources. Pour certaines applications, cela peut être nécessaire. Par exemple, dans OpenCPU, les graphismes peuvent être récupérées dans lesPNG
,PDF
ouSVG
format. Toutefois, il serait impossible d'intégrer laPNG
image dans une page HTML si unAccept
en-tête est nécessaire pour la récupération.Je cherchais à faire exactement la même chose (service web RESTful), et je suis tombé sur cet addon firefox, qui vous permet de modifier l'accepter en-têtes (en fait, tous les en-têtes de demande) pour les demandes. Il fonctionne parfaitement.
https://addons.mozilla.org/en-US/firefox/addon/967/
Utiliser du javascript!
ModHeader extension pour Google Chrome, est également une bonne option. Il vous suffit de définir les en-Têtes que vous voulez et il suffit d'entrer l'URL dans le navigateur, il prendra automatiquement les en-têtes d'extension lorsque vous appuyez sur l'url. La seule chose c'est, il va envoyer des en-têtes pour chaque URL, vous touchera donc, vous devez le désactiver ou le supprimer après l'utilisation.