summaryrefslogtreecommitdiff
path: root/html/processed-views/server-client-contract.md
diff options
context:
space:
mode:
Diffstat (limited to 'html/processed-views/server-client-contract.md')
-rw-r--r--html/processed-views/server-client-contract.md59
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
+
+
+---