diff options
| author | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-12 07:16:23 +0200 |
|---|---|---|
| committer | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-12 07:16:23 +0200 |
| commit | 7076343338ae3439f3c86f01144818abe8c31978 (patch) | |
| tree | 794abb1e6b8f821091fd095341885496b6dad51d /html/processed-views/server-client-contract.md | |
| parent | 47cbb529f5723b246125ae083a193e11481b89ef (diff) | |
| download | classroom-7076343338ae3439f3c86f01144818abe8c31978.tar.gz classroom-7076343338ae3439f3c86f01144818abe8c31978.tar.bz2 classroom-7076343338ae3439f3c86f01144818abe8c31978.zip | |
add container helpers; constuct public directory-tree
Diffstat (limited to 'html/processed-views/server-client-contract.md')
| -rw-r--r-- | html/processed-views/server-client-contract.md | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/html/processed-views/server-client-contract.md b/html/processed-views/server-client-contract.md new file mode 100644 index 0000000..325e6e5 --- /dev/null +++ b/html/processed-views/server-client-contract.md @@ -0,0 +1,59 @@ +## Server-Client contract + +Servers can serve content in 2 major formats: text/html and json (and links to many more content types) + +Clients/browsers can handle content in many more ways; they can just passive render the content or they +can grow their proccessing and logic to become a smart engine or heavy application. + +These 2 factors need to cooperate smoothly. So, it is necessary to pre-define: +- what a server serves +- what a borwser/client procceses + +This contract: +- allows development sharing in separate teams +- sets clear rules for each development group +- helps developing an ecosystem of reliable tools that can be reused and extended +- helps to detect malfunctions and apply fixes and optimizations +- makes the project manageable and scalable + + +--- + + +## The Contract + +A cotract is recommended to include as less as possible rules; + +Of course there might be page-types that need special handling; Such pages are + +- product pages + +- product categories pages + + + +### Rule #1: Default rule + + +On the server side: + +- Server serves main content in html format; all non-user-based content is constucted and served in html format + +On the client side: + +- Client/browser requests the user-based content via ajax; (*still to be determinid the format of the replies*) + + + +### Product Pages + + +apache: +serves product -> product: { id, title, prices:{ s1:{..}, s2:{..}, ... }, images:{...} } + +browser: +check cookie(store) = s# +-> use product.prices.s# to draw prices + + +--- |
