mirror of
https://github.com/CommunitySolidServer/CommunitySolidServer.git
synced 2024-10-03 14:55:10 +00:00

* chore: add markdownlint-cli2 and config for mkdocs * style: enforce linting rules on mkdocs md files * chore: tweaks to markdownlint rules * style: linting changelog * style: linting release notes * style: linting .github md files * style: further linting of docs * style: linting readmes * chore: update linting script entries * docs: tweak release after rebase * chore: simplify root md linting config * chore: extend base config * chore: implement requested changes * chore: remove unnecessary exception * chore: fix comment type * styling: single config + list spacing * chore: implement requested changes * chore: use .cjs files for markdownlint config * chore: implement requested changes
1.5 KiB
1.5 KiB
Solid protocol
The LdpHandler
, named as a reference to the Linked Data Platform specification,
chains several handlers together, each with their own specific purpose, to fully resolve the HTTP request.
It specifically handles Solid requests as described
in the protocol specification,
e.g. a POST request to create a new resource.
Below is a simplified view of how these handlers are linked.
flowchart LR
LdpHandler("<strong>LdpHandler</strong><br>ParsingHttphandler")
LdpHandler --> AuthorizingHttpHandler("<br>AuthorizingHttpHandler")
AuthorizingHttpHandler --> OperationHandler("<strong>OperationHandler</strong><br><i>OperationHandler</i>")
OperationHandler --> ResourceStore("<strong>ResourceStore</strong><br><i>ResourceStore</i>")
A standard request would go through the following steps:
- The
ParsingHttphandler
parses the HTTP request into a manageable format, both body and metadata such as headers. - The
AuthorizingHttpHandler
verifies if the request is authorized to access the targeted resource. - The
OperationHandler
determines which action is required based on the HTTP method. - The
ResourceStore
does all the relevant data work. - The
ParsingHttphandler
eventually receives the response data, or an error, and handles the output.
Below are sections that go deeper into the specific steps.