- CRC、MD5
- Referer(Referrer)
- URL展開
- クッキー
- 正規表現
- 分割ダウンロード
- ワイルドカード

## CRC、MD5

データから一定長の数値に変換されたハッシュ値です。 同じデータからは同じハッシュ値が生成されるのでデータの検査に使用します。 CRC16は16bit、CRC32は32bit、MD5は128bitの数値になります。

## Referer(Referrer)

HTTPで取得するURLがどこから参照（リンク）されたかをサーバに通知します。 サーバによってはRefererでダウンロードを制限している場合があります。

## URL展開

連続したURLを作成する書式です。

- 10進数連番

["0〜9の繰り返し" - "0〜9の繰り返し"]

    http://host/dir[0-1]/filename[02-03].jpg
      ↓
    http://host/dir0/filename02.jpg
    http://host/dir0/filename03.jpg
    http://host/dir1/filename02.jpg
    http://host/dir1/filename03.jpg

- 16進数連番

["0〜Fの繰り返し" - "0〜Fの繰り返し"]

    http://host/dir[09-0a]/filename[0e-0f].jpg
      ↓
    http://host/dir09/filename0e.jpg
    http://host/dir09/filename0f.jpg
    http://host/dir0a/filename0e.jpg
    http://host/dir0a/filename0f.jpg

- アルファベットの26進数連番

["A〜Zの繰り返し" - "A〜Zの繰り返し"]

    http://host/dir[a-b]/filename[c-d].jpg
      ↓
    http://host/dira/filenamec.jpg
    http://host/dira/filenamed.jpg
    http://host/dirb/filenamec.jpg
    http://host/dirb/filenamed.jpg

- 10進数連番その2

["0〜9の繰り返し" & "0〜9の繰り返し"]

    http://host/dir[00&01]/filename[00&01].jpg
      ↓
    http://host/dir00/filename00.jpg
    http://host/dir01/filename01.jpg

- 旧式の10進数連番

"0〜9の繰り返し" - "0〜9の繰り返し"

    http://host/dir/filename00-03.jpg
      ↓
    http://host/dir/filename00.jpg
    http://host/dir/filename01.jpg
    http://host/dir/filename02.jpg
    http://host/dir/filename03.jpg

- 旧式のアルファベットの26進数連番

"3桁のA〜Z" - "3桁のA〜Z"

    http://host/dir/filenameaaa-aad.jpg
      ↓
    http://host/dir/filenameaaa.jpg
    http://host/dir/filenameaab.jpg
    http://host/dir/filenameaac.jpg
    http://host/dir/filenameaad.jpg

- ファイルの追加

"URL" + "追加するファイル名"

    http://host/dir/filename[0-1].jpg+abc.jpg
      ↓
    http://host/dir/abc.jpg
    http://host/dir/filename0.jpg
    http://host/dir/filename1.jpg

## クッキー

HTTPでサーバとクライアントが継続的なデータのやり取りをするために使用します。 サーバによってはクッキーの有無でダウンロードを制限している場合があります。

## 正規表現

比較対象に一致する文字列を指定するときに使用する文字列表現式です。

    .	改行以外の文字に一致
    ^	文字列の最初に一致
    $	文字列の最後に一致
    *	直前の0回以上の繰り返しに一致
    +	直前の1回以上の繰り返しに一致
    ?	直前の0回か1回の繰り返しに一致
    A|B	AかBに一致

詳しくは解説しているサイトで調べてみてください。

## 分割ダウンロード

ダウンロードを効率よく行うためにサーバへ複数接続してダウンロードを行います。 しかし、サイズの大きいファイルにしか効果がなく、サーバへの負荷も高いため利用には注意してください。

分割ダウンロードが有効の場合と無効の場合は保存ファイルに完全な互換性がありません。

- 分割ダウンロード有効

まずサイズと同じ大きさの保存ファイルを作成し、 それをバッファ(32KB）の大きさのブロックに分けてインデックス(_irvineファイル)で管理します。 サーバからのデータがバッファにたまったらブロックに書き込みます。 ダウンロードが中断した場合にはバッファのデータは破棄します。

- 分割ダウンロード無効

サーバからのデータをそのままファイルの後ろに追加していきます。

## ワイルドカード

比較対象に一致する文字列を指定するときに、全ての文字に一致する特殊な文字です。 全てに一致する*と1文字に一致する?があります。

例：http://host/dir/filename.jpg　に一致する文字列

http://host/dir/*.jpg
http://host/dir/*.*
http://host/dir/????name.jpg

戻る