結論
Q.) http/https始まりの画像のURLはリクエストしたら何が返ってくる?
A.) バイナリ
モチベーション
昨日上記の記事を書いたが、データURL(data:
始まりのURL)はbase64でエンコードされた値をブラウザがデコードして画像を表示する。
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAAAAAAZai4+AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQfmBAcXIg2k9EMuAAACaElEQVR42u3V3XKiMAAF4L7/G5xErYBaq9v6s6OtLlD/ocBDbQCB7Ey7FbgwF+fcSIA5fgYTHhIj83BvAFlkkUUWWWQZErLIIsuEkEUWWSaELLLIMiFkkUWWCSGLLLJMCFlkkWVCyCKLLBNCFllkmRCyyLoD6wXXgz2K+Okwfht05OAtvqm/Ycn3rM9O0bj9pzEa5cej6AZV05JvWeEYReMSIz9PqEYzyNUpeJOY/axqXPI1K5g/SZSNUyy0S4Cbfv6BCP5valPyNWuXT/F1NMCmurRCPz94xKqclB5+ZwcvsOOmJTewouPx6JaNHeyrS8+Y5wdzTMqTLsRRfXzkHw1LfmalORWNIfDx3BP2r3M6srDNT29hVTdPMYiTqH+dtIYl9Vjl0pbv2a/289M+utXNYRfrZJHaWpTUY20A2wsCz84ekcAhP32A0O52IV0hTu1KarH812W2u8Q2xkkiq0ap3z5VM7FqW1KHVcZLZ7xfzX9fv6geoxO3LWnEUrtNkAyrf+tQv3gQkJe2JY1YYdo4KbbFJabatchCF08tS+qwYutxW8y4mv91saQttfaqLOCcpb5jNimpNVtjWJ9ZtYPXJLkI7NLRDkJ7Zvt0ga3RCdqU1GOpLcfxgovnoJt2zNDzosTv6W9Z9QgX2VdOWpTUZCUbke+E3ewXRkNAqHfwSFt3c1jp8ld/e7d5SV1Wcp5ZUtqLMB/Fa0dKZ60Vqpfy7srrhU1LbmTdNWSRRZYJIYssskwIWWSRZULIIossE0IWWWSZELLIIsuEkEUWWSaELLLIMiFkkUWWCSGLLLJMCFlkkWVC/gI+i6YMw2buTAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wNC0wOFQwODozNDoxMyswOTowMPL3fUAAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDQtMDhUMDg6MzQ6MTMrMDk6MDCDqsX8AAAAAElFTkSuQmCC
↓
では、http/httpsで画像をリクエストした場合にどのようなレスポンスが返ってくるのか?という疑問が浮かんだので調べる。
画像のURLに対してcurlした時のレスポンス
> curl https://user-images.githubusercontent.com/37968814/162342676-ca1c4f9d-50cf-40d8-af32-edf08aa45fc5.png Warning: Binary output can mess up your terminal. Use "--output -" to tell Warning: curl to output it to your terminal anyway, or consider "--output Warning: <FILE>" to save to a file.
レスポンスはバイナリ。警告にしたがって出力先を指定する。
> curl --output hoge.png https://user-images.githubusercontent.com/37968814/162342676-ca1c4f9d-50cf-40d8-af32-edf08aa45fc5.png % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 864 100 864 0 0 21600 0 --:--:-- --:--:-- --:--:-- 22153 > ls hoge.png
画像ファイルがバイナリから.pngに変換されて保存がされたみたい。
http/https始まりの画像のURLに対してリクエストした場合はバイナリが返ってくることが分かった。