8 EKİM 2008, ÇARŞAMBA

Geri Kalanı İçin İntro

Gregorio: Merhaba. Ben, Joe Gregorio değilim ve ben Google'da Geliştirici İlişkileri çalışır. Bu konuşma, konuşmak, REST olduğunu ve Seni Atom Yayıncılık Protokolü ile aşina sanırım. Eğer değilsen, sen benim diğer video izleyebilirsiniz "Atom Yayıncılık Protokolüne An Introduction," ve sonra geri gelip bu bir izle. Yani başlayalım. Sen süreli DİNLENME duymuş olabilirsiniz, ve protokoller çok bu gün DİNLENME kendilerini reklamını yapıyorsunuz. DİNLENME Roy Fielding tezi geliyor ve Simgelemesel Devlet Transferi için duruyor. Bu bir mimari tarzı var. Şimdi, bir mimari

tarzı bir soyutlamadır Somut bir şey olarak karşı. Örneğin, bu Shaker evi Shaker mimari tarzı farklıdır. Shaker mimari tarzı vasıf ve özellikleri tanımlar O tarzında inşa edilmiş bir evde görmek istiyorum. Aynı

şekilde, DİNLENME mimari tarzı mimari kısıtlamalar bir dizi O tarzında inşa edilmiş bir protokol görürdünüz. HTTP böyle bir protokoldür. Ve, bu konuşmanın geri kalanı için, biz sadece HTTP hakkında konuşmak

“Joe Gregorio DİNLENME arkasındaki temel ilkeleri üzerinde gider. RFC 2616: http://www.ietf.org/rfc/rfc2616.txt RFC 3986: http://www.rfc-editor.org/rfc/rfc...”
Google Developers

için gidiyoruz. Ve geri söz edeceğim REST mimari kısıtlamalara biz bu örnek üzerinden çalışırken. Şimdi, her yönü HTTP kapsayacak şekilde sadece mümkün değil, Bu sunumun sonunda, böylece Bir başka okuma listesi olacak, Daha fazlasını öğrenmek istiyorsanız. Peki neden DİNLENME önemsemeliyiz? Peki, bugün çalışır gibi Web mimarisi var. Ve bina uygulamaları olmak için gidiyoruz eğer Web'de, çalıştığınız olmamalı bunun yerine karşı mimarisi ile? Ve umarım, gib

Geri Kalanı İçin İntro Resim 1 Geri Kalanı İçin İntro Resim 2 Geri Kalanı İçin İntro Resim 3 Geri Kalanı İçin İntro Resim 4

i, bize bu video aracılığıyla gittiğini görmek Birçok fırsat olacaktır performansını artırmak için ve uygulama ölçeklenebilirlik, ve bazı geleneksel zor sorunları çözmek HTTP ile çalışarak ve yetenekleri tam olarak yararlanarak. Aşağı bazı temel alalım, HTTP operasyonda bazı terminoloji. En basit olarak, HTTP istek yanıt protokolüdür. Sen tarayıcı, sunucuya bir istek yapar Web sunucusu size yanıt verir. Web güzelliği, çok basit görünen bir sanki tarayıcınızın sunucusuna doğrudan konuşuyor. Yani, detaylı bakalım Belirli

bir istek ve yanıt olarak. İşte GET isteği URL'ye http://example.org/news ve burada cevap benziyor budur. Bu 200 yanıt var ve başlıkları burada ne görüyorsanız vardır ve tepki vücudun biraz. Istek, bir URI tarafından tanımlanan bir kaynak olduğunu Bu durumda ben http://example.org/news, dediğim gibi. Kaynaklar ya addressability çok önemlidir. Istek bir URI tarafından tanımlanan bir kaynak olduğunu. Bu durumda, http://example.org/news olarak. URI iki parçaya bölünür. Yol, istek hattı gider ve konak konak başlığında gösterir görebilirsiniz. Bir yöntem yoktur ve bu kaynak üzerinde gerçekleştirmek için eylem var. Aslında birkaç farklı yöntem vardır bu kullanılabilir, GET PUT, diğerleri arasında, HEAD, POST ve DELETE ve bu yöntemlerin her biri Onlar hakkında belirli özelliklere sahiptir. Örneğin, GET kasası, idempotent ve önbelleklenebilir olduğunu. Önbelleklenebilecek yanıtı önbelleğe anlamına gelir Yol boyunca bir aracı tarafından, idempotent, istek birden çok kez yapılabilir anlamına gelir ve güvenli hiçbir yan etkisi var demektir Bu eylemi gerçekleştirmesini. Bu yüzden de idempotent olduğu PUT, ama güvenli değil ve önbelleklenebilir değil. DELETE ile aynı, o idempotent edilir. KAFA güvenli ve idempotent olduğunu. POST, bu özelliklerin hiçbirine sahip. Ayrıca bu yanıt döndü Bu kaynağın temsil oldu Ne o URI yaşıyor. Temsil organıdır ve bu durumda, bir HTML dokümanı oldu. HTML, bütünde bir şeklidir hangi diğer kaynaklara bağlantılar vardır demektir. Burada tıklayarak ki geleneksel bağlantı Başka bir sayfaya gitmek için, ancak bağlantının birden fazla çeşit var. İşte CSS belgeye bağlantı Tarayıcı arayıp sayfayı stili içerecektir. Bağlantıların diğer tür de var. İşte bir JavaScript belgeye biri var Bu çekti alacak. Bu bütünde özellikle önemli bir türüdür çekti oluyor veya belge. Bu, Kod Demand denir tarayıcıya kod yüklemek için yeteneği ve istemci üzerinde çalıştırmak. Yanıt başlıkları kontrol verileri göstermek, Böyle ne kadar kontrol eden bu başlık olarak yanıt önbelleğe alınabilir. Yani şimdi biz baktım o basit bir HTTP isteği ve yanıtı da, Geri dönüp bazı özelliklerini bakalım Bu bir sığınakta protokol olması gerekiyordu. Uygulama durumu ve işlevselliği kaynaklarına yönelmiştir. Bu kaynaklar benzersiz adreslenebilir hiper bağlantılar kullanılmak için evrensel bir sözdizimi kullanılarak. Tüm kaynaklar düzgün bir arayüzü paylaşan durumunu aktarmak için istemci ve sunucu arasında iyi tanımlanmış işlemlerin bir kısıtlama setinden oluşan, içerik türlerinin set bir kısıtlama isteğe bağlı olarak on Demand Kodu destekleyen, ve istemci-sunucu olan bir protokol, devletsiz, katmanlı ve önbelleklenebilir. Şimdi biz zaten hakkında konuştuk o HTTP ile bu yönleriyle pek, biz zaten kaynaklara sahip olduğunu görebilirsiniz Bu URI tarafından tanımlanan, ve bu kaynakların düzgün bir arayüzü var yöntemlerin sınırlı bir dizi anlayış GET gibi, PUT, POST, HEAD ve DELETE ve temsiller kendini tanımlanan olduğunu, içerik türlerinin set bir kısıtlama Bu, köprü olabilir sadece ama aynı zamanda on Demand Kodu içerebilir örneğin biz JavaScript ile gördük. Ve hatta HTTP istemci-sunucu protokolüdür gördüm. Özelliklerin geri kalan tartışmak Protokol, Biz alt yapısını bakmak gerekiyor Web. Biz aslında basitleştirilmiş bir örnek ile başladı Web bir müşteriye nasıl göründüğüne dair. Sağ adlar kullanarak geçiş edelim bu parçalardan her biri için. Onlar kullanıcı aracısı ve menşe sunucusu sensin. Gerçeklik bağlantıları olduğunu Bu parçalar arasında çok daha karmaşık olabilir. Sizin ve sunucu arasında çok sayıda aracılar olabilir bağlanmakta ediyoruz. Aracılar, biz, HTTP aracıları ortalama düşük seviyelerde cihazları içermeyen Böyle yönlendiriciler, modemler ve erişim noktaları gibi. Bu aracılar protokol katmanlı kısmı, ve bu katman aracılar eklenecek sağlar istek cevabı yolunda çeşitli noktalarda bileşenler arasındaki arabirimleri değiştirmeden Onlar mesajların geçmesi şeyler yapmak nerede, çeviri veya önbelleğe alma ile performansının iyileştirilmesi gibi. Aracılar vekiller ve geçitlerini içerir. Proxies müşteri tarafından seçilir, ağ geçitleri origin sunucusu tarafından seçilir ise. Sadece bir vekil ve bir ağ geçidi gösteren slayt rağmen, Birkaç vekiller ve ağ geçitleri olabilir fark Kullanıcı madde ve kökeni sunucusu arasında, ya da aslında orada yok olabilir. Son olarak, zincirin her aktör, vekiller aracılığıyla kullanıcı acentesinden ve kaynak sunucuya ağ geçitleri, onlarla ilgili bir önbelleğe sahip olabilir. Aracı önbelleğe alma yaparsa ve bir yanıtı yanıt önbelleğe alınabilir belirtir, Bir saat bu durumda, Daha sonra ise bu kaynak için yeni bir istek bir saat içinde gelir, Daha sonra önbelleğe yanıt iade edilecektir. Bu önbelleğe önemli özelliklerini ortaya bitirmek Bizim DİNLENME protokol. Şimdi, biz bu mimari yararları olduğunu söyledi. Bunlardan bazıları nelerdir? Performans avantajları bazı edelim ilk bakmak, bu, verimlilik, ölçeklenebilirlik içerir ve kullanıcı performansını algılanan. Verimlilik için, Bu zula tüm yol boyunca yardımcı olur. Sizin talebiniz tüm yolu geri ulaşmak için olmayabilir kaynak sunucuya ya da, yerel kullanıcı arayüzü önbellek halinde, Hatta tüm şebekeyi isabet asla. Kontrol veri sıkıştırma sinyali sağlar yani bir yanıt gönderilmeden önce gzip'lenmiş edilebilir Onları işleyebilir kullanıcı ajanlara. Ölçeklenebilirlik birçok alanda gelir. Ağ geçitlerinin kullanılması trafiği dağıtmak için izin verir kökeni sunucularının büyük bir set arasında yöntemine göre, URI, içerik türü, veya diğer başlıkları herhangi bir istek gelen. Caching ayrıca ölçeklenebilirlik olur bu isteklerin gerçek sayısını azaltır olarak Bu geri kaynak sunucuya tüm yol yapmak. Ve vatansızlık bir istek yönlendirilmesini sağlar Farklı ağ geçitleri ve yakınlık sayesinde, Böylece tanıtan darboğazları kaçınarak gerektiği gibi ve daha fazla aracıları izin eklenecek. Son olarak, Kullanıcı Algılanan Performans artar Bilinen ortam türleri azaltılmış set alarak Bu tarayıcılar çok daha hızlı bilinen türleri ele verir. HTML belgelerinin Örneğin, kısmi render Onlar indirmek gibi. Ayrıca, on Demand Kod hesaplamaları izin verir müşteriye daha yakın Taşınacak veya sunucuya yakın, iş hızlı yapılabilir yere bağlı. Örneğin, JavaScript form doğrulama yapmak zorunda bir istek bile kaynak sunucuya yapılmadan önce Açıkçası daha hızlı daha sunucuya form değerleri yuvarlak açma ve sunucu herhangi bir doğrulama hataları dönmek zorunda. O gerek olmayabilir istekleri Benzer şekilde, önbelleğe alma burada olur Tamamen geri origin sunucusuna gidin. Ayrıca, GET idempotent ve güvenli olduğundan, Gerektiğinde önce bir kullanıcı aracısı sonuçlarını önceden almak olabilir, Bu şekilde kullanıcı algılanan performans artar. Biz kapsamaz diğer faydaları bir sürü ancak bu Roy'un tezi özetlenmiştir. Ama bütün bu faydaları serbest değildir. Aslında Başvurunuzu yapısı var veya hizmet bunlardan yararlanmak için. Bunu yaparsanız, o zaman fayda elde edeceksiniz. Eğer yapmazsan, sen onları almazsınız. Yapılanma nasıl yardımcı görmek için iki protokoller bakalım: XML-RPC ve Atom Yayıncılık Protokolü. Yani bu bir XML-RPC isteği neye benzediği, ve burada bir örnek tepki. XML-RPC isteklerin Tüm mesajlar bulunmaktadır. Yani aracılar bu istek yanıtı ne görüyorsunuz? Güvenli mi? Hayır. O idempotent mı? Hayır. Ya da ön belleğe alınabilir mi? Hayır. Böyle bir durumda, aracılar olduğunu asla bilemez. Tüm istekleri, aynı URI gitmek hangi gibi birçok aramaları dağıtmak için gidiyoruz demektir kökenli sunucuların bir grup arasında, Eğer vücudun içine bakmak gerekir yöntem adı için. Bu, Web bilgilerin en az miktarda verir ve böylece aracı herhangi bir yardım almaz ve raf parçaları kapalı olan ölçekli değildir. Yani Atom Yayıncılık Protokolü'nün bir göz atalım. Yani yazma Atom Yayıncılık Protokolü başlamak için, Bir istemci yetenekleri ve yerleri keşfetmek gerekiyor Mevcut koleksiyonları. Servis belgeleri tasarlanmıştır Bu keşif hizmeti destekleyecek. Bir hizmet belgesini almak için, biz onun URI bir GET gönderin. GET, güvenli idempotent, önbelleklenebilir ve zipable olduğunu. Yanıt tipi kendinden belirlenmesi olduğunu. Gördüğünüz gibi, bir içerik türü başlığı var Uygulama Atom Hizmet artı XML Bu içerik özellikle ne kendini tanımlar ve tepki kendisi hypertexted olup. Bu koleksiyonların her biri için URI'leri içerir. Yani, burada, bu slayt, vurgulanan buydu göreli URI koleksiyon içindir. Biz URI bir koleksiyon var, Biz yeni bir üye yaratmak için bir giriş ekleyebilirsiniz, ve daha sonra, GET PUT, veya kendi URI de üye DELETE. Yani burada bir koleksiyon belgeye GET bir örnek. Yine, bu kasa idempotent, ön belleğe alınabilir ve zipable olup. Yanıtı da kendi kendini tanımlama burada Başka bir içerik türü olduğu gibi, application / atom + xml. Ve yine, tepki köprü olduğunu. Son olarak, düzenleme URI tanımlar Giriş Aslında burada değiştirilebilir. URI Yani, sen onu almak için bir GET yapabilirsiniz Eğer kaynak güncellemek için bir PUT gönderebilirsiniz, ya da bunu kaldırmak için DELETE gönderebilirsiniz koleksiyonundan. Gördüğünüz gibi Yani, Atom Yayıncılık Protokolü akılda dinlendirici özelliklere sahip tasarlanmış ve bir çok avantaj alır aracılar ve ağ kendisi bu iletiler ileri geri aktarmak olarak. Yani, diğer deyimler bazı bakalım Eğer dinlendirici protokol bina kullanabileceğiniz bazı avantajlar elde etmek. Örneğin, görüntüleri uzun ömürlü. Eğer büyük resimler varsa bu ihtiyacı ileri ve geri transfer edilmesi Web sayfasının bir parçası olarak, yapmanız gereken budur Bu görüntüler çok uzun olması için önbelleği ayarlayın. Eğer bu görüntüleri güncellemeniz gerekiyorsa, Yeni URI yeni bir resim yüklemek ve bu yeni URI işaret HTML değiştirin. Burada büyük image.png sahip bir örnek. Ve biz o görüntüyü almak durumunda, göreceksiniz ki önbellek kontrol başlığı çok uzun bir süre için kurulmuştur. Bu durumda, 30 gün. Biz bir hata yaptım, ya da eğer bu görüntüyü güncellemek istiyorum, Ben yeni bir resim upload yapmanız gereken, büyük resim-2, çok uzun olması bunun için önbellek denetimi ayarlamak, ve daha sonra HTML güncelleyin. Buradaki fikir HTML tutmak olduğunu Kısa önbellek ömrü ile, ve böylece kolayca güncelleyebilirsiniz. Yani orada, gitmek Bir üst düzey REST görünümü ve nasıl HTTP ile ilgilidir. İşte ileri okuma listesi Ben size söz vermişti söyledi. "RFC 2616" aslında HTTP ne olduğunu özetliyor. "RFC 3986" URI standardı özetliyor. Sen, Roy Fielding tezi okuyabilirsiniz "Mimari Stiller ve Tasarım Yazılım Mimarileri Ağ tabanlı. " Ve de bu "önbelleğe alma Eğitimi" var detaylı kapakları Mark Nottingham biz sadece konuştuk şeyler çok. Teşekkür ve eğlenin.

Açıklama

Joe Gregorio DİNLENME arkasındaki temel ilkeleri üzerinde gider. RFC 2616: http://www.ietf.org/rfc/rfc2616.txt RFC 3986: http://www.rfc-editor.org/rfc/rfc3986.txt Mimari Stiller ve Ağ tabanlı yazılım Arhchitectures Tasarımı: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm Önbelleğe alma Öğretici: http://www.mnot.net/cache_docs/

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

Google Developers

Google Developers

Google Developers kanalı, dersleri, söyleşiler, en son haberleri ve en iyi uygulamaları sunuyor. Android, Chrome, Web Geliştirme, Polimer, Performans, iOS ve daha fazla bilgi! Burada resmi Google Geliştiriciler kanalına abone olarak bu kaynağın yararlanın: https://www.youtube.com/channel/UC_x5XG1OV2P6uZZ5FSM9Ttw?sub_confirmation=1   Https://twitter.com/googledevs: Twitter Google Geliştiriciler izleyin Https://plus.google.com/+GoogleDevelopers: Google Google Geliştiriciler izleyin Http://googledevelopers.blogspot.com/: Google Developers Blog göz atın

YORUMLAR



9.0/10

  • 1267
    Olumlu
  • 137
    Olumsuz
  • 167
    Yorum
  • 427975
    Gösterim

SPONSOR VİDEO

Rastgele Yazarlar

  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • Megan Parken

    Megan Parken

    19 Temmuz 2009
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005

ANKET



Bu sayfa işinize yaradı mı?