wgetコマンドでリクエストヘッダを指定する方法

目次

スポンサードリンク

wgetコマンドの基本構文

wgetコマンドはインターネットから、htmlファイルや画像などのコンテンツをダウンロードする際に使用するコマンドです。

基本構文は以下です。コマンドの後にオプション、ダウンロード対象のURLと続けます。

wget [オプション] [URL]

任意のリクエストヘッダを追加する方法

wget コマンドが対象のコンテンツにリクエストする際のリクエストヘッダは –debug オプションで確認することができます。 以下は試しに当ブログにアクセスしてみた結果です。 リクエストヘッダ、レスポンスヘッダ、コンテンツが詳細に表示されました。https://uchy.me/ にアクセスしたので、https://uchy.me/blog/ にリダイレクトされているのが分かりますね。

[root@hostname ~]# wget --debug https://uchy.me/
DEBUG output created by Wget 1.19.5 on linux-gnu.

Reading HSTS entries from /root/.wget-hsts
URI encoding = ‘UTF-8’
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2024-05-01 15:10:50--  https://uchy.me/
Certificates loaded: 354
Resolving uchy.me (uchy.me)... 49.212.235.185
Caching uchy.me => 49.212.235.185
Connecting to uchy.me (uchy.me)|49.212.235.185|:443... connected.
Created socket 3.
Releasing 0x000055beaed8f220 (new refcount 1).

---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: uchy.me
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 302 Found
Server: nginx
Date: Wed, 01 May 2024 06:10:50 GMT
Content-Type: text/html; charset=iso-8859-1
Content-Length: 205
Connection: keep-alive
Location: https://uchy.me/blog/

---response end---
302 Found
Registered socket 3 for persistent reuse.
URI content encoding = ‘iso-8859-1’
Location: https://uchy.me/blog/ [following]
Skipping 205 bytes of body: [<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://uchy.me/blog/">here</a>.</p>
</body></html>
] done.
URI content encoding = None
Converted file name 'index.html' (UTF-8) -> 'index.html' (UTF-8)
--2024-05-01 15:10:50--  https://uchy.me/blog/
Reusing existing connection to uchy.me:443.
Reusing fd 3.

---request begin---
GET /blog/ HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: uchy.me
Connection: Keep-Alive

---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 01 May 2024 06:10:50 GMT
Content-Type: text/html
Content-Length: 20519
Connection: keep-alive
Last-Modified: Tue, 30 Apr 2024 14:07:06 GMT
ETag: "5027-61750e28d5680"
Accept-Ranges: bytes

---response end---
200 OK
Length: 20519 (20K) [text/html]
Saving to: ‘index.html.1’

index.html.1                  100%[==============================================>]  20.04K  --.-KB/s    in 0.008s

2024-05-01 15:10:50 (2.61 MB/s) - ‘index.html.1’ saved [20519/20519]

wgetコマンドが最初のリクエストでサーバーに送信しているリクエストヘッダは以下の部分です。

---request begin---
GET / HTTP/1.1
User-Agent: Wget/1.19.5 (linux-gnu)
Accept: */*
Accept-Encoding: identity
Host: uchy.me
Connection: Keep-Alive

---request end---

ここに、任意のリクエストヘッダをカスタムで追加してみます。カスタムで追加するリクエストヘッダは、–headerで追加します。–header=’ヘッダー名: 値’ の形式で追加します。試しにUser-Agentヘッダでtestという値を追加してみます。

wget --debug --header='User-Agent: test ' https://uchy.me/

---request begin---
GET / HTTP/1.1
User-Agent: test
Accept: */*
Accept-Encoding: identity
Host: uchy.me
Connection: Keep-Alive

---request end---

User-Agentヘッダが追加されました。–header オプションを複数しているすることでリクエストヘッダを複数追加することもできます。


Linuxコマンドについて学べるおすすめ書籍

Linux教科書 図解でパッとわかる LPIC/LinuC
はじめてLPICを受ける方向け、手を動かしながらLinuxについて学びたい方におすすめ。30日間の無料体験もできる『Kindle Unlimited』でも読むことができます。

Linuxコマンドについて徹底的に学べるUdemy講座
もう絶対に忘れない Linux コマンド【Linux 100本ノック+名前の由来+丁寧な解説で、長期記憶に焼き付けろ!】 icon