יום רביעי, 28 באוקטובר 2015

REST, GET ו-Post

REST, Representational State Transfer
  
REST הינו סגנון ארכיטקטוני, או סט של אילוצים ארכיטקטוניים.
HTTP בנוי בסגנון של REST.
HTTP הינו פרוטוקול של שליחה ותגובה (Request / Response) ומיועד לאפשר תקשורת בין ה-Client ל-Server
ל-HTTP יש מתודות לשליחה / תגובה בין השרת לקליינט, למשל Get ו-Post.
ה-Get הוא בטוח - אין תופעות לוואי, ניתן לשליחות חוזרות ואפשרי לקאשינג.
התגובה ב-HTTP כוללת אספקטים ייצוגיים שזה התוכן של ה-URL, מה שנמצא ב-Body, כמו למשל מסמך HTML.
מסמך HTML יכול לכלול לינקים למסמכים אחרים, ל-CSS ול-Java Script.
הינה כמה מאפיינים של REST:

Resources:
   URI
      Uniform Interface
      Methods
      Representation
  
Protocol
   Client / Server
   Stateless: each req is independent from each other.
   Cacheable
   Layered
וכמה יתרונות:  
   Network performance
   Efficiency - Caching
   Scalability - Possibile to use large set of origin servers
   User Perceived Performance - set of defined methods, lets the code run in the client or server - whatever is faster
ככה נראה REST בחיים האמיתיים

ההבדלים בין המתודות הם:
ב-Get הפרמטרים נמצאים ב-URL
ב-Post הפרמטרים נמצאים ב-Body 
הרבה פעמים אנו משתמשים ב-Get להביא מסמכים והפרמטרים מתארים את המסמכים - למשל באיזה דף אנחנו נמצאים.
ב-Post בד"כ משתמשים בכדי לעדכן את הנתונים או את השרת.
ל-Get יש הגבלה על אורך, ל-Post כמעט ואין.
ל-Get אפשר לעשות קאשינג בדרך השרת לקליינט, ב-Post לא.
את ה-Get אפשר לשלוח מספר פעמים, את ה-Post לא.
  
RESTful API הוא API לפניות לשרת. אפשר להשתמש במגוון מתודות וב-XML, אבל בעיקר משתמשים בו ב-JSON. SOAP (Simple Object Access Protocol) למשל משתמש רק ב-Post וב-XML.

אין תגובות:

הוסף רשומת תגובה

רשומות פופולריות