【XMLHttpRequest】getAllResponseHeaders()とgetResponseHeader()の戻り値【レスポンスヘッダー】

  • このエントリーをはてなブックマークに追加

XMLHttpRequest.getAllResponseHeaders() – Web API | MDN (mozilla.org) ExternalLinkから引用 ここから-
XMLHttpRequestのgetAllResponseHeaders()メソッドは、すべてのレスポンスヘッダーを CRLF で区切った文字列として返し、レスポンスを受信していない場合は null を返します。
XMLHttpRequest.getAllResponseHeaders() – Web API | MDN (mozilla.org) ExternalLinkから引用 ここまで-

XMLHttpRequest.getResponseHeader() – Web API | MDN (mozilla.org) ExternalLinkから引用する ここから-
XMLHttpRequest の getResponseHeader() メソッドは、特定のヘッダー値のテキストを含んだ文字列を返します。

同じ名前で複数のレスポンスヘッダーがあった場合、値はカンマと空白で区切って値を接続した単一の文字列として返されます。 getResponseHeader() メソッドは値を UTF バイト列として返します。
XMLHttpRequest.getResponseHeader() – Web API | MDN (mozilla.org) ExternalLinkから引用する ここまで-

「同じ名前で複数のレスポンスヘッダーがあった場合」とあるが、「Wed, 18 Jan 2023 11:19:17 GMT」が「Wed」, 「18 Jan 2023 11:19:17 GMT」の2個あるので「,」で区切られるということかな?

次のような値が取得できた。




console.log("x.getAllResponseHeaders() = " + x.jqXHRResultList[i].getAllResponseHeaders());

console.log("x.getResponseHeader('accept-ranges') = " + x.jqXHRResultList[i].getResponseHeader("accept-ranges"));
console.log("x.getResponseHeader('connection') = " + x.jqXHRResultList[i].getResponseHeader("connection"));
console.log("x.getResponseHeader('content-length') = " + x.jqXHRResultList[i].getResponseHeader("content-length"));
console.log("x.getResponseHeader('content-type') = " + x.jqXHRResultList[i].getResponseHeader("content-type"));
console.log("x.getResponseHeader('date') = " + x.jqXHRResultList[i].getResponseHeader("date"));

date = new Date((x.jqXHRResultList[i].getResponseHeader("date")));
console.log("date = "+date);

console.log("x.getResponseHeader('etag') = " + x.jqXHRResultList[i].getResponseHeader("etag"));
console.log("x.getResponseHeader('keep-alive') = " + x.jqXHRResultList[i].getResponseHeader("keep-alive"));
console.log("x.getResponseHeader('last-modified') = " + x.jqXHRResultList[i].getResponseHeader("last-modified"));
console.log("x.getResponseHeader('server') = " + x.jqXHRResultList[i].getResponseHeader("server"));


/*

x.getAllResponseHeaders() = accept-ranges: bytes
                            connection: Keep-Alive
                            content-length: 4271
                            content-type: text/plain
                            date: Wed, 18 Jan 2023 11:19:17 GMT
                            etag: "10af-5f153f50e489b"
                            keep-alive: timeout=5, max=80
                            last-modified: Tue, 03 Jan 2023 03:49:39 GMT
                            server: Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.1

x.getResponseHeader('accept-ranges') = bytes
x.getResponseHeader('connection') = Keep-Alive
x.getResponseHeader('content-length') = 4271
x.getResponseHeader('content-type') = text/plain
x.getResponseHeader('date') = Wed, 18 Jan 2023 11:19:17 GMT
date = Wed Jan 18 2023 20:19:17 GMT+0900 (日本標準時)
x.getResponseHeader('etag') = "10af-5f153f50e489b"
x.getResponseHeader('keep-alive') = timeout=5, max=80
x.getResponseHeader('last-modified') = Tue, 03 Jan 2023 03:49:39 GMT
x.getResponseHeader('server') = Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.1

*/

content-length
「Content-Length エンティティヘッダーは、受信者に送信されるエンティティ本文の長さをバイト単位で示します。」とmdnに書いてあった。これはajaxでtxtファイルを取得したときのtxtの「サイズ」と一致しているな。
Content-Length – HTTP | MDN (mozilla.org) ExternalLink

date
「Date は HTTP の一般ヘッダーで、メッセージが発信された日時が含まれています。」とmdnに書いてあった。時間(GMT)取得できているな。
Date – HTTP | MDN (mozilla.org) ExternalLink

content-type
「Content-Type 表現ヘッダーは、リソースのメディア種別を示すために使用します。」とmdnに書いてあった。ajaxでtxtを読み込んだら「text/plain」と書いてあったな。
Content-Type – HTTP | MDN (mozilla.org) ExternalLink


「content-length、date、content-type」の3つくらいの情報しか使わない気がする。あとの情報は何に使うのだろうか?値を見て何が分かるのか?勉強しないと分からんな。










  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*