wgetでHTTP/1.1を使う
以前から、何気なくWEBページをダウンロードするのに使っていたgnu wgetのWindowsバイナリだが、HTTP/1.0 を使っているようだ。
> wget.exe -V
GNU Wget 1.10.2
Copyright (C) 2005 Free Software Foundation, Inc.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
> wget test.xxxxxxxxx.com
GET / HTTP/1.0
User-Agent: Wget/1.10.2
Accept: */*
Host: test.xxxxxxxxx.com
Connection: Keep-Alive
調べてみると、wget 1.13からHTTP/1.1に対応しているみたい。 Windowsバイナリも発見。(リンク切れです)
こちらにあるようです。(2017.07.15)
GNU Wget 1.20.3 for Windows GNU Wget 1.20.3 for Windows
> wget.exe -V
GNU Wget 1.13.4 built on mingw32.
+digest +https +ipv6 +iri -large-file +nls -ntlm +opie +ssl/gnutls
Wgetrc:
d:/usr/etc/wgetrc (system)
Locale: d:/usr/share/locale
Compile: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/d/usr/etc/wgetrc"
-DLOCALEDIR="/d/usr/share/locale" -I. -I../lib -I../lib
-D_WIN32_WINNT=0x0501 -I/d/usr/include -Wall -O2 -ggdb -g3
Link: gcc -Wall -O2 -ggdb -g3 /d/usr/lib/libiconv.dll.a -L/d/usr/lib
/d/usr/lib/libintl.dll.a /d/usr/lib/libiconv.dll.a -L/d/usr/lib
/d/usr/lib/libgnutls.dll.a -L/d/usr/lib /d/usr/lib/libnettle.dll.a
/d/usr/lib/libhogweed.dll.a /d/usr/lib/libgmp.dll.a
/d/usr/lib/libz.dll.a /d/usr/lib/libws2_32.a
/d/usr/lib/libp11-kit.dll.a /d/usr/lib/libintl.dll.a
/d/usr/lib/libiconv.dll.a -L/d/usr/lib -lz -lws2_32 -lidn
ftp-opie.o mswindows.o gnutls.o ../lib/libgnu.a
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://www.gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
試してみるとちゃんとHTTP/1.1ヘッダが出ている。
> wget test.xxxxxxxxx.com
GET / HTTP/1.1
User-Agent: Wget/1.13.4 (mingw32)
Accept: */*
Host: test.xxxxxxxxx.com
Connection: Keep-Alive
はて、今までWindowsでwgetを使っていた時、name baseのvirtual hostの取得はうまく行ってたんだろうか… 忘れよう。