рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП RESTful API - рдЗрд╕реЗ рд╕рд╣реА рдХрд░рдирд╛ (рднрд╛рдЧ 2)

рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рднрд╛рдЧ рдореЗрдВ, рдореИрдВрдиреЗ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд░реИрд╕реНрдЯрдлреБрд▓ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдФрд░ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдирдП рд░рд┐рд▓реАрдЬрд╝ рдХрд░ рд╕рдХреЗрдВ рдФрд░ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рд╕рдХреЗрдВред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ HATEOAS рдФрд░ Hypermedia рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛, рдФрд░ рдлрд┐рд░ рдореИрдВ рдЙрд╕ рднреВрдорд┐рдХрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдЬреЛ рд╡реЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдирд┐рднрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рд╖рдп рдХреИрд╢рд┐рдВрдЧ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реЛрдЧрд╛ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдкрд░ рдХреИрд╢рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди)ред рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рдХреБрдЫ рд╣рдж рддрдХ, iOS рдпрд╛ рдЕрдиреНрдп рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


HTTP API, REST рдФрд░ HATEOAS


рд╡рд░реНрддрдорд╛рди рдореЗрдВ, HTTP рдПрдкреАрдЖрдИ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рдпрд╣рд╛рдБ рдЬреЙрди Algermissen рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИ ред рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЕрдкрдиреА RESTful рд╕реЗрд╡рд╛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рд╡рд╣ рдРрд╕рд╛ рди рд╣реЛред
рддреЛ рдЕрд╕рд▓реА рдЕрд╕рд▓реА рд╕рд░реНрд╡рд░ рдХреНрдпрд╛ рд╣реИ? рдпрд╣ рдХрд┐рд╕реА рднреА рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ / рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛ рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдПрдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдбреЗрд╡рд▓рдкрд░ рдпрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░реВрдЯ API URL рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ "рдЕрдиреНрдп рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕рд╛рдзрдиреЛрдВ" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Restful API рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реНрдерд┐рддрд┐ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреЗрд╡рд▓ рдПрдХ рдЬреЛ HATEOAS рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ RESTful рд╕рд░реНрд╡рд░ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

HATEOAS - рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд░рд╛рдЬреНрдп рдХреЗ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ


HATEOAS рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рджреЛ рдореБрдЦреНрдп рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
  1. рд╕реЗрд╡рд╛ рдХреЗрд╡рд▓ рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛ рд╕рдВрд╕рд╛рдзрдиред рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрди рд╡реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХреЗрд╡рд▓ рд╕рд╛рдордЧреНрд░реА рд╣реЛрддреА рд╣реИ рдФрд░ рдЕрдиреНрдп рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХред JSON (рдПрдкреНрд▓рд┐рдХреЗрд╢рди / json) рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИред (рджреВрд╕рд░реА рдУрд░, рдХрдИ RESTful, HATEOAS рд╕рд░реНрд╡рд░ рд╣реИрдВ рдЬреЛ JSON рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ) рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЖрдк JSON рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: рд╕рдВрдмрдВрдзрд┐рдд рдЫрд╡рд┐ рдердВрдмрдиреЗрд▓ рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП href рдлрд╝реАрд▓реНрдб)
  2. рдЧреНрд░рд╛рд╣рдХ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБред API рд╣реЛрдордкреЗрдЬ рд╕реЗ, рдмрд╛рдж рдореЗрдВ GET рдХреЙрд▓ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд URL рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рдмрд╛рдж рдореЗрдВ "POST", "PUT" рдпрд╛ "DELETE" рдЕрдиреБрд░реЛрдз рдлреЙрд░реНрдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдП рдЬрд╛рдиреЗ рдЪрд╛рд╣рд┐рдПред
рдЗрди рджреЛ HATEOAS рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╕реЗ рдЖрдкрдХреЛ рдЬреЛ рдореБрдЦреНрдп рд▓рд╛рдн рдорд┐рд▓рддрд╛ рд╣реИ, рд╡рд╣ рд╣реИ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЖрд╕рд╛рдиреАред

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдирдП API рдореЗрдВ HATEOAS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?


рдирд╣реАрдВ!
рдХреНрдпреЛрдВ? рдЕрддреАрдд рдореЗрдВ, рдПрдкреАрдЖрдИ рдЬреНрдпрд╛рджрд╛рддрд░ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рдереЗред рдпреЗ рд╕рд░реНрд╡рд░ рдЖрдорддреМрд░ рдкрд░ рдПрдХреНрд╕рдПрдЪрдЯреАрдПрдордПрд▓ рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред рдРрд╕реА рдпреЛрдЬрдирд╛ рдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдкрдХреЗ рдореЛрдмрд╛рдЗрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдЬреЛ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рдкрддреНрд░ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реИред рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдЖрдкрдХреЗ RESTful рд╕рд░реНрд╡рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдлреЙрд░реНрдо рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЖрдк рд╕рд░реНрд╡рд░ рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк (рдХрдо рд╕реЗ рдХрдо рдмрд┐рдирд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХреЗ) рдЙрд╕реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдЙрдкрд▓рдмреНрдз рджреЗрд╢реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рджрд╛рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА, Apple / Google рдпрд╛ Microsoft, XHTML рдлрд╝реЙрд░реНрдо рдХреЛ UIViewController (iOS рдкрд░) рдпрд╛ рдЗрд░рд╛рджреЗ (Android рдкрд░) рдпрд╛ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдкреЗрдЬ (рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдкрд░) рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореИрдВ GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рд╛рдЗрдкрд░рд▓рд┐рдВрдХ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рд╕рднреА POST / PUT рдФрд░ DELETE рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐рдпреЛрдВ (рдкреНрд░рдкрддреНрд░реЛрдВ рдХреЗ рдмрдЬрд╛рдп) рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: / рджреЛрд╕реНрддреЛрдВ / рдЬреЛрдбрд╝рдиреЗ рдпрд╛ / рд╕реНрдерд╛рдиреЛрдВ / рдЪреЗрдХрд┐рди) рдирд┐рдпрдВрддреНрд░рдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдЕрдиреНрдп рдЙрддреНрддрд░реЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рддрд╛рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗрдВ)ред рдмреЗрд╢рдХ рдпрд╣ REST рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдареАрдХ рд╣реИред рдмреЗрд╣рддрд░ рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓реЗ рдЙрддреНрдкрд╛рдж рдмрдирд╛рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдорд╛рдирдХреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХрдо рдЙрдкрдпреЛрдЧ рдХреЗ рд╣реИрдВред (рдпрд╣ рд╕рдВрднрд╡рддрдГ рд╣рдорд╛рд░реЗ рдПрдкреАрдЖрдИ рдХреЛ HTTP- рдЖрдзрд╛рд░рд┐рдд рдЯрд╛рдЗрдк 2 рдмрдирдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдиреЗрдЧрд╛)ред

рдХреИрд╢рд┐рдВрдЧ


рд╣рдо рдХреИрд╢рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ред рдХреИрд╢рд┐рдВрдЧ, рдЬреИрд╕рд╛ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдорд╛рдирддреЗ рд╣реИрдВ, рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛рд░реНрдп (рдпрд╛ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░реЙрдХреНрд╕реА рдХрд╛рд░реНрдп) рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐, рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде, рдЖрдк рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдордзреНрдпрд╡рд░реНрддреА рдХреИрд╢рд┐рдВрдЧ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЙрдирдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдореБрдлреНрдд рднрд╛рд░ рд╕рдВрддреБрд▓рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛ред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ HTTP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ 13 рд╡реЗрдВ рдЕрдзреНрдпрд╛рдп рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдмрд╣реБрдд рдкрд╣рд▓реЗ рдирд╣реАрдВ, рдХрд▓рд╛ рдЯреЗрд▓рд░ рдиреЗ рдЯреНрд╡реАрдЯ рдХрд┐рдпрд╛:

"рдореИрдВ рджреЛ рдирдП рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд╣реВрдВ: 1) рдпрджрд┐ рдЖрдкрдХрд╛ рдЖрд╡реЗрджрди рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреИрд╢рд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВред 2) рдпрджрд┐ рдЖрд╡реЗрджрди рдЫреЛрдЯреА рдЧрд╛рдбрд╝реА рд╣реИ, рддреЛ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдЦреИрд░, рдХреИрд╢рд┐рдВрдЧ рдЗрддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдХреНрдпреЛрдВ рд╣реИ!"

рд▓реЗрдХрд┐рди рдореЗрд░рд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЛ, рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдХреИрд╢рд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рд╕реБрдЭрд╛рдП рдЧрдП рджреЛ рдореБрдЦреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ:

  1. рдХрд╕реНрдЯрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдХрд╕реНрдЯрдо рдХреИрд╢рд┐рдВрдЧ рдпреЛрдЬрдирд╛рдПрдБ рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред
  2. RFC HTTP 1.1 рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдореВрд▓ рдХреИрд╢рд┐рдВрдЧ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭреЗрдВред рджреЛ рдХреИрд╢рд┐рдВрдЧ рдореЙрдбрд▓ рд╡рд╣рд╛рдВ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдФрд░ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ред

рдХрд┐рд╕реА рднреА рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ, рдПрдХ рд╕рд░реНрд╡рд░ рд╕реВрдЪрдирд╛ рдХрд╛ рдПрдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрдд рд╣реИред рдЬрдм рдЖрдк рд╕рд░реНрд╡рд░ рдХреЗ рдПрдкреАрдЖрдИ рд╕реЗ рдПрдХ рд╕рдВрд╕рд╛рдзрди (рдкреЗрдЬ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд "рд╕рдВрдХреЗрдд" рднреЗрдЬрддрд╛ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рдХреЛ рдХреИрд╕реЗ рдХреИрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдЕрдзрд┐рдХреГрдд рд░реВрдк рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреИрд╢реНрдб рдЬрд╛рдирдХрд╛рд░реА рдХрдм рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИред рдпреЗ рд╕рдВрдХреЗрдд рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рд╕рдорд╛рдкреНрддрд┐ рдореЙрдбрд▓ рдЖрдорддреМрд░ рдкрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХреЛ рд╕рд░реНрд╡рд░ рдкрдХреНрд╖ рдХреЗ рдбреЗрд╡рд▓рдкрд░ рджреНрд╡рд╛рд░рд╛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдбреЗрд╡рд▓рдкрд░ рд╣реИ рдЬреЛ рддрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╡реИрдзрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИ, рдФрд░ рдЬрдм рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрддреА рд╣реИред рд╕рдорд╛рдкреНрддрд┐ рдореЙрдбрд▓ рдЖрдорддреМрд░ рдкрд░ рддрдм рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╕рд░реНрд╡рд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕рд╛рдзрди рдХрдм рддрдХ рдорд╛рдиреНрдп рд╣реЛрдЧрд╛ред рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдиреНрдп рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╛рдж рдореЗрдВ рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди рдЗрди рджреЛрдиреЛрдВ рдореЙрдбрд▓реЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЬреИрд╕реЗ рд╣реА рдЖрдк рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рд╣реИред

рд╕рдорд╛рдкреНрддрд┐ рдореЙрдбрд▓

рдЖрдЗрдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдХреИрд╢рд┐рдВрдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рджреЗрдЦреЗрдВред рдпрджрд┐ рдЖрдк nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдорд╛рди рд╣реИ:

location ~ \.(jpg|gif|png|ico|jpeg|css|swf)$ { expires 7d; } 

nginx рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдЙрдкрдпреБрдХреНрдд HTTP рд╣реЗрдбрд░ рдореЗрдВ рддрдмреНрджреАрд▓ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рд░реНрд╡рд░ рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдореЗрдВ "рдПрдХреНрд╕рдкрд╛рдпрд░" рдпрд╛ "рдХреИрд╢-рдХрдВрдЯреНрд░реЛрд▓: рдореИрдХреНрд╕-рдПрдЬ = рдПрди" рдлрд╝реАрд▓реНрдб рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ 7 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдХреИрд╢ рдХрд░рдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдЧрд▓реЗ 7 рджрд┐рдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдФрд░ рдордзреНрдпрд╡рд░реНрддреА рдкреНрд░реЙрдХреНрд╕реА) рдЗрд╕ рд╣реЗрдбрд░ рдХрд╛ рд╕рдореНрдорд╛рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд▓реЛрдХрдкреНрд░рд┐рдп SDWebImage рд╕рд╣рд┐рдд iOS рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрд╛рдВрд╢ рдУрдкрди рд╕реЛрд░реНрд╕ рдЗрдореЗрдЬ рдХреИрд╢рд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ, рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХреИрд╢рд┐рдВрдЧ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХреЗрд╡рд▓ n рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдврд╛рдВрдЪреЗ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЗрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЖрдкрдХрд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЧреИрд░-рдорд╛рдирдХ рд╕рдорд╛рдзрд╛рди (рд╣реИрдХреНрд╕) рдХрд╛ рд╕рд╣рд╛рд░рд╛ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реИред рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЪрд▓реЛ рд╣рдорд╛рд░реЗ "рдирдП рдлреЗрд╕рдмреБрдХ" рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред рдЬрдм рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдЕрд╡рддрд╛рд░ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рд╡рд░реНрддрди рд╕рднреА рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред рдХреБрдЫ рдЯреНрд░рд┐рдХреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдПрдХ рд╕рдлрд▓ рдЕрдкрдбреЗрдЯ-рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓-рдЫрд╡рд┐ рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╕реНрдерд╛рдиреАрдп рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддреЗ рд╣реИрдВред (рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рднреА рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рд╕реЗ рдирдП рддрд░реАрдХреЗ рд╕реЗ рдЪрд┐рддреНрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред рд╕рдм рдХреБрдЫ рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореИрдиреЗрдЬрд░ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рджреГрд╢реНрдп рдореЗрдВ рдЕрдм рдирд╡реАрдирддрдо рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪрд┐рддреНрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рджреЛрд╕реНрдд рдХреЗрд╡рд▓ 7 рджрд┐рдиреЛрдВ рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдирдпрд╛ рдЕрд╡рддрд╛рд░ рджреЗрдЦреЗрдВрдЧреЗред рдмрд┐рд▓реНрдХреБрд▓ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдпред рддреЛ рдЗрд╕реЗ рдХреИрд╕реЗ рд╣рд▓ рдХрд░реЗрдВ? рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдЖрдкрдХреЛ рдЗрд╕ рдХрдерди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд╕рд░реНрд╡рд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдбреЗрдЯрд╛ рдХрд╛ рд╕реНрд░реЛрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдХреИрд╢ рдХреА рдЧрдИ рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдХреЗ рдХреИрд╢ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдмреЗрдИрдорд╛рди рдЪрд╛рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред

рд╡реИрдзрддрд╛ рдореЙрдбрд▓

рдлреЗрд╕рдмреБрдХ рдФрд░ рдЯреНрд╡рд┐рдЯрд░ рджреЛрдиреЛрдВ рд╣реА рдкреБрд░рд╛рдиреА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ (рдПрдХ рдирдИ рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж) рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕рдВрд╕рд╛рдзрди рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдЧреНрд░рд╛рд╣рдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдХреИрд╢ рдХрд░рддрд╛ рд╣реИред HTTP рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ ETag рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдк рдПрдХ рд╣реА рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ ETag рдкрд░ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред рд╕рд░реНрд╡рд░ рдЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рдЕрдВрддрд┐рдо рдХреЙрд▓ рдХреЗ рдмрд╛рдж рд╕реЗ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛рдж рд░рдЦреЗрдВ, рд╕рд░реНрд╡рд░ рдПрдХрдорд╛рддреНрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрдд рд╣реИ)ред рдпрджрд┐ рд╕рдВрд╕рд╛рдзрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рднреЗрдЬрддрд╛ рд╣реИред рдЕрдиреНрдпрдерд╛, рдпрд╣ 304 Not Modified рднреЗрдЬрддрд╛ рд╣реИред рдХреИрд╢ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХреЛ рдХреИрд╢ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рджреЛрдиреЛрдВ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдореИрдВ рдЙрди рджреЛрдиреЛрдВ рдХрд╛ рдЖрдЧреЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рдЧреНрд░рд╛рд╣рдХ рд╕рд╣рд╛рдпрддрд╛

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ iOS рдХреЗ рддрд╣рдд, рдпрджрд┐ рдЖрдк MKNetworkKit рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╕рднреА рдХрд╛рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдВрдбреНрд░реЙрдЗрдб рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреИрд╢ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ ETag рдФрд░ рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд HTTP рд╣реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд╛рдЗрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде ETag рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ, рдЬрдм рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣реЗрдбрд░ рдХреЗ "IF-NONE-MATCH" рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдХ ETag рднреЗрдЬреЗрдВред рдЗрд╕реА рддрд░рд╣, рдпрджрд┐ рдЖрдкрдХреЛ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде "рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд" рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ, рддреЛ рдЙрд╕реЗ рдмрд╛рдж рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ "IF-MODOFIED-SINCE" рд╣реЗрдбрд░ рдкрд░ рднреЗрдЬреЗрдВред рд╕рд░реНрд╡рд░, рдЗрд╕рдХреЗ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, "ETag" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЬрдм "рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд" рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░реЗрдЧрд╛ред



рд╕рдорд╛рдкреНрддрд┐ рдореЙрдбрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд░рд▓ рд╣реИред рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдбреНрд╕, "рдПрдХреНрд╕рдкрд╛рдпрд░" рдпрд╛ "рдХреИрд╢-рдХрдВрдЯреНрд░реЛрд▓: рдореИрдХреНрд╕-рдПрдЬ-рдПрди" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдорд╛рдкреНрддрд┐ рддрд┐рдерд┐ рдХреА рдЧрдгрдирд╛ рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рддрд┐рдерд┐ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдкрд░ рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░реЗрдВред

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди

ETag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
ETag рдЖрдорддреМрд░ рдкрд░ рд╣реИрд╢ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред (рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рд╕рд░реНрд╡рд░ рднрд╛рд╖рд╛рдУрдВ рдЬреИрд╕реЗ рдЬрд╛рд╡рд╛ / рд╕реА # / рд╕реНрдХрд╛рд▓рд╛ рдореЗрдВ рд╣реИрд╢рд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдПрдВ рд╣реИрдВ)ред рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рд░реНрд╡рд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдФрд░ рдЗрд╕реЗ ETag рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдм, рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХ IF-NONE-MATCH рднреЗрдЬрд╛ рд╣реИ рдФрд░ рдпрд╣ ETag рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЧрдгрдирд╛ рдХрд┐рдП рдЧрдП рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рддреЛ 304 Not Modified рднреЗрдЬреЗрдВред рдЕрдиреНрдпрдерд╛, рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдирдП рдИрдЯреИрдЧ рдХреЗ рд╕рд╛рде рднреЗрдЬреЗрдВред

рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реАрдзрд╛ рдирд╣реАрдВ рд╣реИред рдЖрдЗрдП рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдПрдкреАрдЖрдИ рдореЗрдВ рдПрдХ рдХреЙрд▓ рд╣реИ рдЬреЛ рджреЛрд╕реНрддреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред

 http://api.mynextfacebook.com/friends/ 

рдЬрдм рдЖрдк ETag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рджреЛрд╕реНрддреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЗ рд╣реИрд╢ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдЙрд╕ рддрд╛рд░реАрдЦ рдХреЛ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╕рдВрд╕рд╛рдзрди рдЕрдВрддрд┐рдо рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рдВрд╕рд╛рдзрди рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рддрд┐рдерд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдПрдХ рдирдпрд╛ рдорд┐рддреНрд░ рдЬреЛрдбрд╝рдиреЗ рдХреА рддрд┐рдерд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рдбреЗрдЯрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рддрд╛рд░реАрдЦ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред ETag рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдмрдбрд╝рд╛ рд▓рд╛рдн рджреЗрддрд╛ рд╣реИред
рдЬрдм рдХреЛрдИ рдЧреНрд░рд╛рд╣рдХ рдкрд╣рд▓реА рдмрд╛рд░ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк рджреЛрд╕реНрддреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА рднреЗрдЬрддреЗ рд╣реИрдВред рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдмрд╛рдж рдореЗрдВ рдХрд┐рдП рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╣реЗрдбрд░ рдореЗрдВ "IF-MODIFIED-SINCE" рдлрд╝реАрд▓реНрдб рд╣реЛрдЧрд╛ред рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдХреЛрдб рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд┐рдерд┐ рдХреЗ рдмрд╛рдж рдЬреЛрдбрд╝реЗ рдЧрдП рдорд┐рддреНрд░реЛрдВ рдХреА рд╕реВрдЪреА рднреЗрдЬрдиреА рдЪрд╛рд╣рд┐рдПред рд╕рдВрд╢реЛрдзрди рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХрд╛ рдХреЛрдб рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдерд╛:

 SELECT * FROM Friends; 

рд╕рдВрд╢реЛрдзрди рдХреЗ рдмрд╛рдж рдпрд╣ рдЗрд╕ рддрд░рд╣ рдмрди рдЧрдпрд╛:

 SELECT * FROM Friends WHERE friendedDate > IF-MODIFIED-SINCE; 

рдпрджрд┐ рдЕрдиреБрд░реЛрдз рд░рд┐рдХреЙрд░реНрдб рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ 304 рдирд╣реАрдВ рд╕рдВрд╢реЛрдзрд┐рдд рднреЗрдЬреЗрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ 300 рдорд┐рддреНрд░ рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рджреЛ рдХреЛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрддреНрддрд░ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд░реНрд╡рд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдФрд░ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрди рдХрд╛рдлреА рдХрдо рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдмреЗрд╢рдХ, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдХреЛрдб рд╣реИред рдЬрдм рдЖрдк рдорд┐рддреНрд░реЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдпрд╛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд┐рд░рджрд░реНрдж рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рд╕рд░реНрд╡рд░ рдХреЛ рд╕рдВрдХреЗрдд рднреЗрдЬрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧ рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдпрд╣ рдХрд╣рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓реЗрдЧрд╛ рдХрд┐ рдХреМрди рд╕реЗ рдорд┐рддреНрд░ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рддрдХрдиреАрдХ рдХреЛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдпрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдПрдХ рдХреИрд╢рд┐рдВрдЧ рдореЙрдбрд▓ рдЪреБрдирдирд╛

So. рдпрд╣ рдПрдХ рдХрдард┐рди рд╡рд┐рд╖рдп рдерд╛ред рдЕрдм рдореИрдВ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдХреИрд╢рд┐рдВрдЧ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдирд┐рдпрдореЛрдВ рдХреЛ рд╕рдВрдХреНрд╖реЗрдк рдФрд░ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред
  1. рд╕рднреА рдЕрднреА рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрддрд┐ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рд╕реЗрд╡рд╛ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
  2. рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
  3. рдпрджрд┐ рдЖрдкрдХрд╛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рд╕рдВрд╕рд╛рдзрди рдПрдХ рд╕реВрдЪреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЕрдВрддрд┐рдо-рд╕рдВрд╢реЛрдзрд┐рдд рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЬреИрд╕реЗ / рджреЛрд╕реНрдд)ред рдЕрдиреНрдп рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдПрдХ ETag- рдЖрдзрд╛рд░рд┐рдд рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред (рдЬреИрд╕реЗ / рдЧрд░реНрд▓рдлреНрд░реЗрдВрдб/firstname.lastname)ред
  4. рдЫрд╡рд┐рдпрд╛рдБ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХрд┐ рдПрдХ рдЕрд╡рддрд╛рд░) рднреА ETag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реИрдзрддрд╛ рдореЙрдбрд▓ рджреНрд╡рд╛рд░рд╛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпреЗ рдЫрд╡рд┐рдпрд╛рдВ рд╣реИрдВ, рд╡реЗ рд╕реНрдерд╛рдпреА рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдХрдВрдкрдиреА рдХрд╛ рд▓реЛрдЧреЛред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдЖрдк рдРрд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╡реИрдзрддрд╛ рдЕрд╡рдзрд┐ рдХреА рд╕рд╣реА рдЧрдгрдирд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдФрд░ рддрд░реАрдХрд╛ (рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рд╣реИрдХреА) "URL рддреНрд░реБрдЯрд┐" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдЬрдм рдЙрддреНрддрд░ рдореЗрдВ рдПрдХ рдЕрд╡рддрд╛рд░ URL рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЧрддрд┐рд╢реАрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдХреЗ рд░реВрдк рдореЗрдВ URL рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп

 http://images.mynextfacebook.com/person/firstname.lastname/avatar 

рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП

 http://images.mynextfacebook.com/person/firstname.lastname/avatar/<> 

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрд╡рддрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░ рд╣реИрд╢ рдмрджрд▓рдиреА рдЪрд╛рд╣рд┐рдПред рдорд┐рддреНрд░ рд╕реВрдЪреА рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рдХреЙрд▓ рдЕрдм рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд URL рднреЗрдЬреЗрдЧреА рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдирд╛ рдЕрд╡рддрд╛рд░ рдмрджрд▓ рд▓рд┐рдпрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд▓рдЧрднрдЧ рддреБрд░рдВрдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛!
рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХреИрд╢рд┐рдВрдЧ рдорд╛рдирдХреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХрд╛ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдФрд░ рдЖрдкрдХрд╛ рдЙрддреНрдкрд╛рдж рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ "рдЙрдбрд╝" рдЬрд╛рдПрдЧрд╛ред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВрдиреЗ рдорд╛рдирдХреЛрдВ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛, рдЬреЛ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдпрд╣ рд▓реЗрдЦ рдХреЗ рджреВрд╕рд░реЗ рднрд╛рдЧ рдХрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдФрд░ рдЕрдВрддрд┐рдо рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЙрдирдХреЗ рдЙрдЪрд┐рдд рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗред

рдореИрдВ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ


рдмрд╛рдХреА рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╛рдЗрди рдирд┐рдпрдо рдкреБрд╕реНрддрд┐рдХрд╛

Source: https://habr.com/ru/post/In144259/


All Articles