

I don’t have much experience with curl. From what I understand, it’s an old but constantly maintained command line tool. If you type curl https://www.google.com/ in your terminal of choice, you should get a text display in return of google’s search page. That’s if the curl command is installed on your system, which it most likely would be.
You won’t be able to interact with it since it’s in text but you can see how the page has been written in the HTML language before it gets rendered into the website you would normally see in a web browser.
When it comes to terminal commands, I find it helpful to do web searches using linux <command name>. For example linux curl and that will lead me to many sites that help explain the command and give multiple examples of how to use the command.
Once you get more experienced with using a terminal, using the command options --help or -h will give you information that could help you use the command. For example curl --help
There’s also manual pages, or man pages that give a more technical look at commands within your terminal of choice. You can access them with man <command name>. Example: man curl.
In the case of federation, every platform that is using federation is using a communication protocol called ActivityPub. Simplified, it functions like email but instead of private emails, it’s transferring public social media content. Microbloggers and threaded conversations can communicate with each other using ActivityPub but the information exchanged between the two platforms is slightly different. That’s how we get quirks like this when two different ActivityPub platforms communicate with each other.

I’ve been writing POSIX scripts as a sort of hobby and don’t really have any Bash experience but I think I can still give some insight. Hopefully what I say is accurate but this is what I’ve learned so far.
POSIX is a standard, to say it as simple as possible, it sets the minimum requirements for environment, programs, commands and options for those commands with the purpose of having those commands be as portable as possible. That way a POSIX script will work on any POSIX compliant system. For example a POSIX script could work on Arch, Debian, on a Raspberry Pi or even Mac products. In theory if could work on windows too. If an Operating System ships with a POSIX compliant shell, you are very likely able to run a POSIX script.
Bash is a shell but it has a bunch of features that expand beyond the basic features set by the POSIX standard. Bash also has more features and flexibility for scripting which is why it’s so common to see Bash scripts. Those scripting features are usually referred to as “bashisms.” Since it expands on POSIX scripting, it can look similar to a POSIX script but would not work as intended if you ran a Bash script outside of a Bash shell.
With a lot of modern OS’s, they would likely have Bash installed and you most likely don’t need to worry about anything. However, Bash is not a standard and not required to be installed on every system.
If you care about your script working on as many systems as possible without the worry about what shell is being used, you will probably prefer writing a
shshell, POSIX compliant script.Since POSIX shells and scripts work on a much more basic level, it can lack some depth and finding work arounds for issues can start to look unreadable/insane. A good example is how arrays are handled. POSIX is limited to one array where Bash has much better support for arrays.
There are advantages to using either but with the popularity of Bash, it’s not really that big of a deal in the end.