I have a question about service-oriented architecture and headless architecture. Are they the same concept, or can headless architecture be considered a subset of service-oriented architecture?
They are completely different architectural styles that address totally different problems.
Service Orientated Architecture (SOA)
An architectural style that applies to (up to) enterprise-wide (inter-system / inter-solution) service architecture.
SOA features completely independent services where the intent of a service ties back strongly to business (organizational) units and their business functions.
Above is an example "toy" SOA architecture, but please note that there are different variations of how you might implement a solution based on the SOA style - this example illustrates the style at a high level.
Headless Architecture
An architectural style that applies to application architecture and development.
In headless you would essentially create an application that had everything except a user interface (UI); instead of providing a UI the application would provide an API designed to service a UI.
You might use this style if you wanted to have two independent teams, one focusing on the backend, the other on the UI; but there are other reasons why you might choose this approach.
If you are interested in headless you may find the "Backend for Frontend" pattern useful.
Lastly - the key idea of Headless Architecture is simply to separate the frontend from the backend - you can still architect the backend any way you like e.g. Clean, Hexagonal / Ports & Adaptors, MACH, etc.
Any number of UI's can consume the same "headless" backend. It is assumed that the UI's are located on tiers that are different from the headless backend - this is not required but is typically what happens in practice. The UI's can be made from completely different technologies and hosted in different locations (hence Presentation tiers).