Pomieszany/zainspirowany komentarzem do mojego pytania Do search engines respect the HTTP header field “Content-Location”?, chciałbym wiedzieć, jaki jest dokładny cel Content-Location
header field in HTTP i jak można go wykorzystać.Jaki jest cel pola nagłówka HTTP "Content-Location"?
Odpowiedz
W odpowiedzi na żądanie GET można użyć lokalizacji treści w HTTP, gdy żądany zasób ma wiele reprezentacji dostępnych, np. wiele języków. Wybór zwróconego zasobu zależy od nagłówków Accept w pierwotnym żądaniu GET.
Zazwyczaj lokalizacja podana w nagłówku Content-Location różni się od lokalizacji podanej w identyfikatorze URI pierwotnego żądania.
W odpowiedzi na żądanie POST lub PUT,
- Jeśli Content-URI Lokalizacja jest inna niż żądana URI, a następnie zapis podręczny na wskazanym URI jest unieważniona. (zob. https://tools.ietf.org/html/rfc7234#section-4.4 i https://tools.ietf.org/html/rfc2616#section-13.10)
- Jeśli identyfikator URI treści jest taki sam, jak żądany identyfikator URI, oznacza to, że w pamięci podręcznej odpowiedź na żądanie PUT/POST jest taka sama, jak odpowiedź odebrana przez 200 odpowiedź na żądanie GET w tej samej lokalizacji i dlatego może być buforowana. (patrz https://tools.ietf.org/html/rfc7231#section-3.1.4.2). Zauważ, że Firefox i Chrome nie wydają się tego używać.
Section 14.14 of RFC 2616 stany:
Pole jednostka-nagłówek Content-lokalizacja może być użyty do podania lokalizacji zasobów dla podmiotu zamkniętym w komunikacie kiedy to jednostka dostępna jest z lokalizacji innej niż URI w poszukiwane zasobach ...
ta jest stosowana w AtomPub (RFC 5023, Section 9.2):
Jeżeli wniosek tworzenie zawierał dokument Atom wpis, a kolejna odpowiedź z serwera zawiera nagłówek Content-Location, spełniających nagłówku Location znak jakości do charakteru, wówczas klient jest upoważniony do interpretowania odpowiedzi podmiot jako pełna reprezentacja nowo utworzonego wpisu. Bez pasującego nagłówka Content-Location, klient NIE MOŻE założyć, że zwrócona jednostka jest kompletną reprezentacją utworzonego zasobu.
Należy pamiętać, że zachowanie opisane w AtomPub dotyczące kompletności reprezentacji nie jest poparte specyfikacją HTTP. – ordnungswidrig
Będzie to w httpbis: Część 2, Sekcja 6.1: http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-12.html#rfc.section.6.1 –
Należy pamiętać, że RFC2616 jest przestarzały przez RFC7231 i twój cytowany tekst nie jest już w RFC7231! Zobacz [Sekcja 3.1.4.2] (https://tools.ietf.org/html/rfc7231#section-3.1.4.2) – exhuma
sprawdź RFC2557 pod adresem: http://www.faqs.org/rfcs/rfc2557.html, aby uzyskać głębsze wyjaśnienie, jeśli jesteś zainteresowany. Obecnie piszę o tym dla klasy. Jest trochę stary, ale wciąż aktualny.
W RFC 2557 nie chodzi o zawartość HTTP-Location, o ile rozumiem. –
Nie jestem pewien, czy mówimy o tej samej rzeczy, ale RFC stwierdza: Ten dokument ... b) określa nagłówek treści MIME (Content-Location), który zezwala na identyfikatory URI w wieloczęściowym/pokrewnym tekście/html część ciała root w odniesieniu do zasobów pomocniczych w innych częściach ciała tej samej wieloczęściowej/powiązanej struktury. – seanAshmore
Z tego co wiem, dokument RFC 2557 dotyczy dokumentu zbiorczego, który zawiera wiele zasobów jako pojedynczy plik, a nagłówek "Lokalizacja treści" zasobu wewnątrz takiej kolekcji służy do określenia, który identyfikator URI może być używany do odnoszenia się do tego konkretnego zasobu. . Zagregowany typ dokumentu zdefiniowany w dokumencie RFC 2557 generalnie nie jest obsługiwany przez oprogramowanie znane jako przeglądarki WWW. Najbliższym dopasowaniem jest funkcja "Zapisz jako archiwum HTML" w programie Microsoft Internet Explorer. –
Nagłówek treści-lokalizacja HTTP ma zadeklarować unikalną lokalizację zasobu, który był użyty do odpowiedzi na HTTP GET (np. Żądanie było GET /frontpage HTTP/1.1
, serwer może dodać nagłówek HTTP Content-Location: http://domain.com/frontpage.english.msie-optimized
informujący klienta użytkownika, że jeśli ta konkretna odpowiedź jest potrzebna później, należy podać podaną lokalizację, ponieważ pierwotna lokalizacja może zależeć od różnych rzeczy, które powinny być wyjaśnione w nagłówku "Vary
").
jednak pamiętać, że nagłówek HTTP Content-Lokalizacja jest problematyczne w czasie rzeczywistym zużycia światowego ponieważ różne przeglądarki (klienckie) poradzić inaczej: http://mail.python.org/pipermail/web-sig/2004-October/000985.html
Wynika to z RFC 2616 sekcji 14,14, który mówi, że „wartość Content-Location definiuje również podstawowy URI dla encji ". Krótko mówiąc, sprawny agent użytkownika oblicza adres URL BASE dla pobranego dokumentu za pomocą nagłówka Content-Location, co może skutkować użyciem różnych względnych adresów URL, jeśli pobrany dokument nie definiuje adresu URL BASE, a rzeczywisty pobrany adres i lokalizacja treści są wystarczająco różne (część "katalog"/"ścieżka" adresu URL jest inna).
Ponadto, nie widziałem jeszcze żadnej korzyści z używania HTTP Content-Location (miałem kiedyś nadzieję, że można to wykorzystać do wskazania trwałej lokalizacji zakładek w przypadku, gdy aktualnie wyświetlany URL był niestabilny, na przykład domain.com/ aktualności/najnowsze, ale tak się nie dzieje).
Moja obecna opinia to zapomnij o Content-Location dla HTTP, ale możesz używać go do wysyłania wiadomości MIME.
- 1. Jaki jest cel pola ValidationResult.Success?
- 2. Jaki jest cel pola sa_data w sockaddr?
- 3. Jaki jest cel HttpHeaders.TryAddWithoutValidation?
- 4. Cel osłon nagłówka
- 5. Cel pól nagłówka Pseudo/Colon
- 6. Jaki jest cel preompompiledApp.config?
- 7. Jaki jest cel używania?
- 8. Jaki jest cel Rake?
- 9. Jaki jest cel JNDI
- 10. Jaki jest cel Mage_Core_Block_Template_Facade
- 11. Jaki jest cel IApplicationBuilder.New()
- 12. Jaki jest cel "() =>"
- 13. Jaki jest cel curdoc()?
- 14. Jaki jest cel aclocal?
- 15. Jaki jest cel vertexAttribPointer?
- 16. Jaki jest cel IAsyncStateMachine.SetStateMachine?
- 17. Jaki jest cel Ember.Container
- 18. Jaki jest cel layout.xml?
- 19. Jaki jest cel XNoImplicitPrelude?
- 20. Jaki jest cel CMakeScripts?
- 21. Jaki jest cel ldexp?
- 22. Jaki jest cel parametru "& rnd =" w żądaniach http?
- 23. Jaki jest cel wartości "q" w nagłówku żądania "Zaakceptuj" HTTP?
- 24. Jaki jest cel prywatnej czystej wirtualnej funkcji?
- 25. Jaki jest cel git-mv?
- 26. Jaki jest cel Array.GetLowerBound (int)?
- 27. Jaki jest cel $ w XSLT
- 28. Jaki jest cel funkcji character_set_connection?
- 29. Jaki jest cel Pk anorma?
- 30. Jaki jest cel używania CommandType.Tabledirect
Rzeczywiście, RFC HTTP twierdzi, że nie ma zdefiniowanego zachowania Content-Location dla PUT i POST. – ordnungswidrig
Zobacz httpbis: część 2, sekcja 6.1: http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-12.html#rfc.section.6.1 –
Jak to się różni od "ja" "relacja łącza? – HDave