a common question that's worth addressing in the docs. The wisdom Kyle shared is that most times you'd prefer the AiohttpReadableStore unless using something that HttpStore is built for, like WebDAV. The reasoning is that obstore's underlying Rust crate focuses on object store-like backends (e.g., S3, GCS, Azure), but pure HTTP doesn't define the full set of actions of an object store. It's misleading to use HTTPStore for HTTP access, because the HTTP spec doesn't define list whereas HTTPStore (build of object storage) declares that list would be available.
"With aiohttp and obspec and obspec-utils you're able to declare that you're providing only, say, get, get ranges, while not falsely declaring that you're providing list, etc. Also, a generic HTTP client gives you full access to underlying credential methods. HTTPStore doesn't let you add, say, a query string with an API key, because it's not trying to serve as a fully generic HTTP client"
A caveat is that there are still improvements needed for the AiohttpStore (xref #50)