Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.46CCHhaAptPerT3ER 3Dasar Web KonsepJava dapat melakukan lebih banyak daripada membuat halaman web mencolok. Meskipun demikian, banyak program Andaakan applet pada halaman web, servlets berjalan pada server, atau layanan webyang perlu untuk berbicara dengan server web lainnya dan klien. Oleh karena itu, penting untuk memilikipadat pemahaman tentang interaksi antara server web dan browser web.Hypertext Transfer Protocol (HTTP) adalah standar yang mendefinisikan bagaimana klien webberbicara ke server dan bagaimana data ditransfer dari belakang server ke klien. Ituarsitektur dan desain dari protokol HTTP adalah Negara Transfer(REST). HTTP dapat digunakan untuk mentransfer data dalam format apapun dasarnya, dari gambar TIFFke dokumen Microsoft Word ke file DBase. Namun, jauh dan palingumum format untuk data yang ditransfer melalui web dan dalam arti tertentu Web yangformat asli adalah Hypertext Markup Language (HTML). HTML adalah standar yang sederhanauntuk menggambarkan nilai semantik dari data tekstual. Anda dapat mengatakan "ini adalah header","Ini adalah item daftar", "ini layak penekanan", dan sebagainya, tetapi Anda tidak dapat menentukan bagaimanaheader, daftar, dan barang-barang lainnya yang diformat: format terserah browser. HTMLadalah "hypertext markup language" karena itu termasuk cara untuk menentukan link kedokumen diidentifikasi oleh URL. URL adalah cara untuk tegas mengidentifikasi lokasidari sumber daya di Internet. Untuk memahami pemrograman jaringan, Anda harusuntuk memahami URL, HTML, dan HTTP secara rinci agak lebih dari rata-rataHalaman web desainer.URISebuah Uniform Resource Identifier (URI) adalah sebuah string karakter dalam sintaks tertentuyang mengidentifikasi sumber daya. Sumber daya diidentifikasi mungkin file di server, tetapi mungkinjuga merupakan alamat email, pesan berita, buku, nama seseorang, sebuah host Internet,saat ini harga saham Sun Microsystems, atau sesuatu yang lain. Sebuah URI absolutterdiri dari skema untuk URI dan bagian-skema yang spesifik, dipisahkan oleh titik dua,seperti ini:Skema: Skema-spesifik-bagianIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.URI | 47Sintaks dari bagian-skema tertentu tergantung pada skema yang digunakan. Aruspola tersebut termasuk:dataBase64-encoded data yang dimasukkan langsung dalam link, lihat RFC 2.397berkasSebuah file pada disk lokalftpSebuah server FTPhttpSebuah World Wide Web server menggunakan Hypertext Transfer ProtocolmenggaliSebuah server GophermailtoSebuah alamat emailberitaSebuah Usenet newsgrouptelnetKoneksi ke layanan Telnet berbasispasuSebuah Nama Uniform ResourceSelain itu, Java membuat berat penggunaan skema kustom tidak standar seperti rmi, jndi,doc dan untuk berbagai keperluan. Kita akan melihat mekanisme di balik iniBab 16, ketika kita membahas penangan protokol.Tidak ada sintaks khusus yang berlaku untuk skema-spesifik bagian dari semua URI. Namun,banyak memiliki bentuk hirarki, seperti ini:/ / Kewenangan / path? PermintaanBagian kewenangan URI menamai otoritas yang bertanggung jawab untuk menyelesaikan sisanyadari URI. Sebagai contoh, http://www.ietf.org/rfc/rfc2396.txt URI memiliki skemahttp dan www.ietf.org otoritas. Ini berarti server di www.ietf.org bertanggung jawabuntuk pemetaan path / rfc/rfc2396.txt ke sumber daya. URI ini tidak memilikipermintaan bagian. The URI http://www.powells.com/cgi-bin/biblio?inkey=62-1565928709-0memiliki http skema, yang www.powells.com otoritas, jalan / biblio, dan queryInkey = 62-1565928709-0. Guci URI: isbn: 156592870 memiliki guci skema namuntidak mengikuti bentuk permintaan hirarkis / / kewenangan / path? skema khusus bagian.Meskipun contoh-contoh saat ini sebagian besar URI menggunakan host Internet sebagai masa depan, otoritasskema mungkin tidak. Namun, jika kewenangan adalah host Internet, opsional nama penggunadan port juga dapat diberikan untuk membuat kewenangan lebih spesifik. Misalnya,URI ftp://mp3:mp3 @ ci43198-a.ashvil1.nc.home.com: 33/VanHalen-Jump.mp3 memilikiotoritas mp3: mp3@ci43198-a.ashvil1.nc.home.com: 33. Otoritas ini memilikiIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.48 | Bab 3: Konsep Dasar Webnama pengguna mp3, mp3 password, host ci43198-a.ashvil1.nc.home.com, danPort 33. Ini memiliki skema ftp dan jalur / VanHalen-Jump.mp3. (Dalam kebanyakan kasus,termasuk password di URI adalah lubang keamanan yang besar kecuali, seperti di sini, Anda benar-benaringin semua orang di alam semesta untuk mengetahui password.)Jalan (yang meliputi / awal) adalah sebuah string yang kewenangan dapat digunakan untuk menentukanyang sumber daya diidentifikasi. Otoritas yang berbeda dapat menafsirkan jalan yang samauntuk merujuk ke sumber daya yang berbeda. Misalnya, jalan / index.html berarti satu halketika otoritas adalah www.landoverbaptist.org dan sesuatu yang sangat berbeda ketikakewenangan adalah www.churchofsatan.com. Path mungkin hirarkis, dalam hal inibagian-bagian individu dipisahkan oleh garis miring ke depan, dan. dan .. operatordigunakan untuk menavigasi hirarki. Ini berasal dari sintaks pathname padaUnix sistem operasi mana Web dan URL diciptakan. Mereka nyamanpeta ke filesystem yang disimpan pada server web Unix. Namun, tidak ada jaminan bahwakomponen dari setiap jalan tertentu sebenarnya sesuai dengan file atau direktori padasetiap filesystem tertentu. Misalnya, dalam http://www.amazon.com/exec/ URIObidos / ISBN% 3D1565924851/cafeaulaitA/002-3777605-3043449, semua bagianhirarki hanya digunakan untuk menarik informasi dari database yang pernah disimpan difilesystem. ISBN% 3D1565924851 memilih buku tertentu dari database dengannomor ISBN nya, cafeaulaitA menentukan siapa yang mendapat fee referensi jika pembelian dilakukandari link ini, dan 002-3777605-3043449 merupakan kunci sesi yang digunakan untuk melacak pengunjungjalur melalui situs.Beberapa URI sama sekali tidak hirarkis, setidaknya dalam pengertian filesystem. Misalnya,snews :/ / secnews.netscape.com / netscape.devs-java memiliki jalan / netscape.devs-java.Meskipun ada beberapa hirarki ke nama newsgroup ditunjukkan oleh. antaranetscape dan netscape.devs-java, itu tidak terlihat sebagai bagian dari URI.Bagian Skema terdiri dari huruf kecil, angka, dan tanda plus, periode,dan tanda hubung. Tiga bagian lain dari URI yang khas (otoritas, jalan, dan permintaan)masing-masing harus terdiri dari karakter alfanumerik ASCII, yaitu, hurufA-Z, a-z, dan angka 0-9. Selain itu, karakter tanda baca - _. ! ~ * 'Mungkinjuga digunakan. Semua karakter lain, termasuk non-ASCII alphanumerics seperti á danÏ€, harus melarikan diri dengan tanda persen (%) diikuti dengan kode heksadesimal untukkarakter. Misalnya, á akan dikodekan sebagai% E1. Sebuah URL sehingga berubah dikatakantelah menjadi "x-www-form-urlencoded".Proses ini mengasumsikan bahwa set karakter adalah 1 Latin. URI dan URL spesifikasitidak benar-benar mengatakan apa set karakter yang harus digunakan, yang berarti perangkat lunak yang palingcenderung menggunakan set karakter default lokal. Dengan demikian, URL yang mengandung non-ASCIIkarakter tidak sangat interoperable di seluruh platform dan bahasa yang berbeda. DenganWeb menjadi lebih internasional dan kurang bahasa Inggris sehari-hari, situasi ini memilikimenjadi semakin bermasalah. Pekerjaan sedang berlangsung untuk menentukan internasionalisasiResource Identifier (IRIS) yang dapat menggunakan berbagai macam Unicode. Pada saat inimenulis, spesifikasi IRI rancangan menunjukkan bahwa non-ASCII karakter harusIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.URI | 49dikodekan dengan terlebih dahulu mengkonversi mereka ke UTF-8, maka persen-melarikan diri setiap byte dariUTF-8, seperti yang ditentukan di atas. Misalnya, huruf Yunani Ï€ adalah titik kode Unicode3C0. Dalam UTF-8, surat ini dikodekan sebagai tiga, byte E0 A7, 80. Jadi di URL ituakan dikodekan sebagai%% A7% E0 80.Tanda baca karakter seperti / dan @ juga harus dikodekan dengan lolos persenjika mereka digunakan dalam peran apapun selain apa yang ditentukan bagi mereka dalam skema khususbagian dari URL tertentu. Sebagai contoh, garis miring ke depan di http:// URIwww.cafeaulait.org/books/javaio/ tidak perlu dikodekan sebagai% 2F karena merekaberfungsi untuk membatasi hirarki sebagaimana ditentukan untuk skema URI http. Namun, jika nama filetermasuk / karakter-misalnya, jika direktori terakhir diberi nama Java I / Obukannya javaio untuk lebih cocok dengan nama URI buku-akan memilikiyang akan ditulis sebagai% http://www.cafeaulait.org/books/Java 20I% 2FO /. Hal ini tidak dibuat-buatmungkin terdengar kepada pengguna Unix atau Windows. Nama file mac seringtermasuk garis miring. Nama file pada banyak platform sering mengandung karakter yangperlu dikodekan, termasuk @, $, +, =, dan banyak lagi.GuciAda dua jenis URI: Uniform Resource Locators (URL) dan SeragamSumberdaya Nama (guci). URL adalah pointer ke sumber daya tertentu di Internetdi lokasi tertentu. Misalnya, http://www.oreilly.com/catalog/javanp3/ adalah salah satuURL untuk beberapa Pemrograman Jaringan buku Java. URN adalah nama untuk suatu tertentusumber daya tetapi tanpa mengacu pada lokasi tertentu. Misalnya, urn: isbn:1565928709 adalah URN mengacu pada buku yang sama. Sebagai contoh ini menunjukkan, guci,seperti URL, tidak terbatas pada sumber daya internet.Tujuan dari guci adalah untuk menangani sumber daya yang tercermin dalam lokasi yang berbedaatau yang telah pindah dari satu situs ke situs lainnya, mereka mengidentifikasi sumber daya sendiri,bukan tempat di mana kehidupan sumber daya. Misalnya, ketika diberi URN untuk tertentusoftware, program FTP harus mendapatkan file dari mirror terdekatsitus. Mengingat URN untuk sebuah buku, browser mungkin memesan buku di perpustakaan lokal ataumemesan salinan dari toko buku.URN A memiliki bentuk umum:urn: namespace: resource_nameNamespace adalah nama dari koleksi beberapa jenis sumber daya yang dikelola olehbeberapa otoritas. Resource_name adalah nama dari sumber daya dalam koleksi tersebut.Misalnya, guci URN: ISBN: 1565924851 mengidentifikasi sumber daya di ISBNnamespace dengan identifier 1565924851. Dari semua buku yang diterbitkan, yang satu inimemilih edisi pertama Java I / O.Sintaks yang tepat dari nama sumber daya tergantung pada namespace. The ISBNnamespace mengharapkan untuk melihat string terdiri dari 10 atau 13 karakter, yang semuanyadigit-dengan pengecualian tunggal yang karakter terakhir mungkin huruf X (baikIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.50 | Bab 3: Konsep Dasar Webatas atau huruf kecil) sebagai gantinya. Selanjutnya, ISBN mungkin berisi tanda hubung yangdiabaikan ketika membandingkan. Namespaces lainnya akan menggunakan syntaxes sangat berbeda untuksumber daya nama. IANA bertanggung jawab untuk membagikan ruang nama yang berbedaorganisasi, seperti yang dijelaskan dalam RFC 3406. Pada dasarnya, Anda harus mengirimkan sebuah Internetdraft IETF dan mempublikasikan pengumuman di milis guci-nid untuk umumkomentar dan diskusi sebelum standarisasi formal.URLURL Sebuah mengidentifikasi lokasi sumber daya di Internet. Ini menentukan protokoldigunakan untuk mengakses server (misalnya, FTP, HTTP), nama server, dan lokasisebuah file pada server. Sebuah URL tipikal terlihat seperti http://www.ibiblio.org/javafaq/javatutorial.html. Hal ini menentukan bahwa ada sebuah file bernama javatutorial.html dalam sebuah direktoridisebut javafaq pada www.ibiblio.org server, dan file ini dapat diaksesmelalui protokol HTTP. Sintaks dari URL adalah:protocol :/ / username @ hostname:? port / path / filename permintaan # fragmenBerikut protokol adalah kata lain untuk apa yang disebut skema URI.(Skema adalah kata yang digunakan dalam RFC URI Protokol adalah kata yang digunakan dalam dokumentasi Java..)Dalam URL, bagian protokol dapat file, ftp, http, https, gopher, news, telnet,wais, atau string lain berbagai (meskipun tidak guci).Bagian nama host dari URL adalah nama dari server yang menyediakan sumber daya Andainginkan, seperti www.oreilly.com atau utopia.poly.edu. Hal ini juga bisa menjadi IP serveralamat, seperti 204.148.40.9 atau 128.238.3.21. Username adalah nama pengguna opsionaluntuk server. Nomor port juga opsional. Ini tidak perlu jika layananberjalan pada port default (port 80 untuk server HTTP).Jalan menunjuk ke direktori tertentu pada server yang ditentukan. Path relatifke akar dokumen server, belum tentu ke akar filesystem padaserver. Sebagai aturan, server yang terbuka untuk publicdo tidak menunjukkan seluruh filesystem merekakepada klien. Sebaliknya, mereka hanya menampilkan isi dari direktori tertentu. Inidirektori disebut document root, dan semua jalur dan nama file yang relatif untuk itu.Dengan demikian, pada server Unix, semua file yang tersedia untuk publicmight yang berada di / var / public /html, tapi untuk seseorang menghubungkan dari mesin remote, direktori ini terlihatseperti akar filesystem.Nama file menunjuk ke sebuah file tertentu dalam direktori yang ditentukan oleh jalan. Sekarangsering diabaikan-dalam hal ini, itu diserahkan kepada kebijaksanaan server file apa, jika ada, untukkirim. Banyak server mengirim file indeks untuk direktori tersebut, index.html atau sering disebutWelcome.html. Beberapa mengirimkan daftar file dan folder dalam direktori, seperti yang ditunjukkan padaGambar 3-1. Orang lain mungkin mengirim pesan 403 error Forbidden, seperti yang ditunjukkan pada Gambar 3-2.Query string menyediakan argumen tambahan untuk server. Ini biasanya digunakanhanya dalam URL http, dimana berisi data berupa masukan untuk program yang berjalan padaserver.Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.URI | 51Akhirnya, referensi fragmen bagian tertentu dari sumber daya remote. Jika remotesumber daya HTML, fragmen identifier nama-nama jangkar dalam dokumen HTML.Jika sumber daya remote XML, fragmen identifier adalah XPointer. Beberapadokumen merujuk ke bagian fragmen dari URL sebagai "bagian"; dokumen Javalebih anehnya mengacu pada fragmen identifier sebagai "Ref". Sebuah anchor bernamadibuat dalam dokumen HTML dengan tag, seperti ini:<A NAME="xtocid1902914"> Komentar </ A>Gambar 3-1. Sebuah web server dikonfigurasi untuk mengirim daftar direktori ketika tidak ada file index adaGambar 3-2. Sebuah web server dikonfigurasi untuk mengirim error 403 bila tidak ada file indeks adaIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.52 | Bab 3: Konsep Dasar WebTag ini mengidentifikasi titik tertentu dalam dokumen. Untuk merujuk ke titik ini, URLmeliputi tidak hanya nama file dokumen, tetapi nama anchor dipisahkan darisisa URL oleh #:http://www.cafeaulait.org/javafaq.html # xtocid1902914Secara teknis, string yang berisi fragmen identifier adalah referensi URL,bukan URL. Java, bagaimanapun, tidak membedakan antara URLdan URL referensi.Relatif URLSebuah URL memberitahu browser web banyak tentang dokumen: protokol yang digunakan untuk mengambildokumen, nama host tempat tinggal dokumen, dan jalan itudokumen pada host. Sebagian besar informasi ini mungkin sama untuk lainnyaURL yang disebutkan dalam dokumen. Oleh karena itu, daripada membutuhkan masing-masingURL yang akan ditentukan secara keseluruhan, URL dapat mewarisi protokol, nama host, danjalur dokumen induknya (yaitu, dokumen yang muncul). URL yangtidak menyelesaikan tapi mewarisi potongan dari orang tua mereka disebut URL relatif. Sebaliknya,URL sepenuhnya ditentukan disebut URL absolut. Dalam URL relatif, setiappotongan yang hilang diasumsikan sama dengan potongan yang sesuai dariURL dari dokumen di mana URL ditemukan. Sebagai contoh, misalkansaat browsing http://www.ibiblio.org/javafaq/javatutorial.html Anda klik inihyperlink:<a href="javafaq.html">Browser memotong javatutorial.html dari ujung http://www.ibiblio.org/javafaq/javatutorial.html untuk mendapatkan http://www.ibiblio.org/javafaq/. Kemudian menempel javafaq.htmlke akhir http://www.ibiblio.org/javafaq/ untuk mendapatkan http://www.ibiblio.org/javafaq/javafaq.html. Akhirnya, itu beban dokumen itu.Jika link relatif dimulai dengan / a, maka relatif ke akar dokumen bukanrelatif ke file saat ini. Jadi, jika Anda klik pada link berikut saat browsinghttp://www.ibiblio.org/javafaq/javatutorial.html:<a href="/boutell/faq/www_faq.html">browser akan membuang / javafaq / javatutorial.html dan melampirkan / Boutell / faq /www_faq.html sampai akhir http://www.ibiblio.org untuk mendapatkan http://www.ibiblio.org/Boutell / faq / www_faq.html.URL relatif memiliki sejumlah keunggulan. Pertama dan paling penting--mereka menyimpansedikit mengetik. Lebih penting lagi, URL relatif memungkinkan pohon dokumen tunggal menjadidilayani oleh beberapa protokol: misalnya, kedua FTP dan HTTP. HTTP mungkindigunakan untuk langsung berselancar, sedangkan FTP dapat digunakan untuk mencerminkan situs. Palingpenting dari semua, URL relatif memungkinkan seluruh pohon dari dokumen yang akan dipindahkan atau disalindari satu situs ke situs lainnya tanpa melanggar semua link internal.Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.HTML, SGML, dan XML | 53HTML, SGML, dan XMLHTML adalah format utama yang digunakan untuk dokumen Web. Seperti yang saya katakan sebelumnya, HTML adalahsederhana standar untuk menggambarkan isi semantik data tekstual. Gagasanmenggambarkan semantik teks dan bukan penampilan berasal dari standar yang lebih tuadisebut Generalized Standard Markup Language (SGML). Standar HTML adalahsebuah instance dari SGML. SGML ditemukan pada pertengahan 1970-an oleh Charles Goldfarb,Edward Mosher, dan Raymond Lorie di IBM. SGML sekarang menjadi Standar InternasionalOrganisasi (ISO) standar, khususnya ISO 8879:1986.SGML dan, oleh warisan, HTML didasarkan pada gagasan desain oleh maknadaripada desain dengan penampilannya. Anda tidak mengatakan bahwa Anda ingin beberapa teks dicetak dalam18-point, Anda mengatakan bahwa itu adalah sebuah heading tingkat atas (<H1> dalam HTML). Demikian juga, Andatidak mengatakan bahwa kata harus ditempatkan dalam huruf miring. Sebaliknya, Anda mengatakan itu harus ditekankan(<em> Dalam HTML). Hal ini diserahkan kepada browser untuk menentukan cara terbaik untuk menampilkan judulatau menekankan teks.Tag digunakan untuk menandai teks adalah case-insensitive. Dengan demikian, <strong> adalah sama dengan<strong> adalah sama dengan <strong> adalah sama dengan <strong>. Beberapa tag memiliki pencocokanend-tag untuk mendefinisikan sebuah wilayah teks. Akhir-tag adalah sama dengan tag start-, kecuali bahwabracket sudut pembukaan diikuti oleh /. Misalnya: <strong> teks ini adalahkuat </ span>; <em> teks ini ditekankan </ EM>. Seluruh teks dari awaldari start-tag ke akhir tag akhir disebut elemen. Dengan demikian, <strong>teks ini kuat </ span> adalah elemen KUAT.Elemen HTML mungkin sarang tetapi mereka tidak boleh tumpang tindih. Baris pertama dalam berikutcontoh adalah sesuai standar. Baris kedua adalah tidak, meskipun banyak browsermenerimanya tetap:<strong> <em> Jack dan Jill naik bukit </ EM> </ STRONG><strong> <em> Untuk mengambil seember air </ span> </ EM>Beberapa elemen memiliki atribut tambahan yang dikodekan sebagai pasangan nama-nilai padaawal-tag. Tag <H1> dan sebagian lainnya ayat-tingkat tag mungkin memiliki ALIGNAtribut yang mengatakan apakah header harus berpusat, kiri-blok, atau rightaligned.Sebagai contoh:<h1 ALIGN=CENTER> ini adalah H1 berpusat heading </ H1>Nilai dari atribut dapat tertutup dalam tanda kutip ganda atau tunggal, seperti ini:<h1 Align="center"> Ini adalah H1 berpusat heading </ H1><h2 ALIGN='LEFT'> ini adalah kiri-blok H2 heading </ H2>Kutipan diperlukan hanya jika nilai mengandung spasi tertanam. Ketika pengolahanHTML, Anda perlu dipersiapkan untuk nilai atribut yang dilakukan dan tidak memiliki tanda kutip.Ada beberapa versi HTML selama bertahun-tahun. Standar saat ini adalahHTML 4.0, yang sebagian besar didukung oleh browser web saat ini, dengan sesekalipengecualian. Selain itu, beberapa perusahaan, terutama Netscape, Microsoft, dan Sun,Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.54 | Bab 3: Konsep Dasar Webtelah menambahkan ekstensi tidak standar untuk HTML. Ini termasuk teks berkedip, inlinefilm, frame, dan, yang paling penting untuk buku ini, applet. Beberapa ekstensi-misalnya, tag-yang <applet> diperbolehkan tetapi usang dalam HTML 4.0.Lainnya, seperti <blink> terkenal Netscape, keluar dari lapangan kiri dan tidak memilikitempatkan dalam bahasa semantik yang berorientasi seperti HTML.HTML 4.0 mungkin akhir baris, selain dari perbaikan kecil. W3C telah ditetapkanHTML yang semakin terlalu besar untuk fitur lapisan lebih di atas. Sebaliknya pengembangan, baruakan fokus pada XML, bahasa semantik yang memungkinkan penulis untuk membuat halamanunsur-unsur yang mereka butuhkan daripada mengandalkan pada elemen tetap beberapa seperti P dan LI.Misalnya, jika Anda sedang menulis sebuah halaman web dengan daftar harga, Anda mungkin akan memilikiSKU elemen, elemen HARGA, elemen PRODUSEN, elemen PRODUK, dan sebagainyasebagainya. Itu mungkin terlihat seperti ini:<PRODUCT MANUFACTURER="IBM"><name> Lotus Pintar Suite </ NAMA><version> 9,8 </ VERSION><PLATFORM> Windows </ PLATFORM><PRICE CURRENCY="US"> 299,95 </ HARGA><SKU> D05WGML </ SKU></ PRODUK>Ini terlihat banyak seperti HTML, dalam banyak cara yang sama bahwa Java terlihat seperti C. Adaelemen dan atribut. Tag yang berangkat dengan <dan>. Atribut diapit kutipantanda, dan sebagainya. Namun, bukannya terbatas pada satu set terbatas tag, Andadapat membuat semua tag baru dan unik yang Anda butuhkan. Karena tidak ada browser dapat mengetahuimemajukan semua elemen yang berbeda yang mungkin muncul, stylesheet yang digunakan untuk menggambarkanbagaimana masing-masing item harus ditampilkan.XML memiliki keuntungan lain atas HTML yang mungkin tidak jelas dari ini sederhanacontoh. HTML bisa sangat ceroboh. Elemen dibuka tetapi tidak ditutup. Atributnilai mungkin atau mungkin tidak tertutup dalam tanda kutip. Kutipan mungkin atau mungkin tidak hadir.XML mengencangkan semuanya ini. Ini menjabarkan persyaratan yang sangat ketat untuk sintaks dari gramatikalDokumen XML, dan mengharuskan browser menolak semua dokumen cacat.Browser tidak akan berusaha untuk memperbaiki masalah dan membuat usaha terbaik-iman untukmenampilkan apa yang mereka pikir penulis dimaksudkan. Mereka hanya harus melaporkan kesalahan. Selain itu,dokumen XML mungkin memiliki Definisi Jenis Dokumen (DTD), yangdapat menyebabkan hambatan tambahan pada dokumen yang sah. Misalnya, mungkin DTDmengharuskan setiap elemen PRODUK berisi tepat satu elemen NAME. Ini memiliki nomorkeuntungan, tetapi salah satu kunci di sini adalah bahwa dokumen XML jauh lebih mudah untuk menguraidari dokumen HTML. Sebagai seorang programmer, Anda akan menemukan lebih mudah untuk bekerja denganXML dibandingkan HTML.XML dapat digunakan baik untuk halaman XML murni dan untuk embedding jenis baru dari kontendalam HTML dan XHTML. Misalnya, Markup Language Matematika,MathML, merupakan aplikasi XML untuk termasuk persamaan matematika dalam halaman web.SMIL, Bahasa Integrasi Synchronized Multimedia, adalah sebuah aplikasi XMLIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.HTTP | 55untuk termasuk multimedia waktunya seperti slide show dan video subjudul di webhalaman. Baru-baru ini, W3C telah merilis beberapa versi XHTML. Bahasa inimenggunakan kosakata HTML familiar (p untuk paragraf, tr untuk baris tabel, imguntuk gambar, dan sebagainya) tetapi membutuhkan dokumen untuk mengikuti aturan-aturan XML ketat:semua nilai atribut harus dikutip, setiap start-tag harus memiliki pencocokan end-tag;elemen dapat sarang tetapi tidak bisa tumpang tindih, dll Untuk informasi lebih banyak tentang XML,lihat XML pendeknya oleh Elliotte Rusty Harold dan W. Scott Means (O'Reilly).HTTPHTTP adalah protokol standar untuk komunikasi antara browser web dan webserver. HTTP menentukan bagaimana klien dan server membuat sambungan, bagaimana klienpermintaan data dari server, bagaimana server merespon permintaan tersebut, danAkhirnya, bagaimana koneksi ditutup. Koneksi HTTP menggunakan protokol TCP / IP untuktransfer data. Untuk setiap permintaan dari client ke server, ada urutan empat langkah:Membuat koneksiKlien membentuk koneksi TCP ke server pada port 80, secara default;port lain dapat ditentukan dalam URL.Membuat permintaanClient mengirimkan pesan ke server meminta halaman pada URL tertentu.Format permintaan ini biasanya sesuatu seperti:GET / index.html HTTP/1.0GET menentukan operasi yang diminta. Operasi yang diminta di sini adalah untukserver untuk mengembalikan representasi dari sumber daya. / Index.html adalah URL relatifyang mengidentifikasi sumber daya yang diminta dari server. Sumber daya ini diasumsikanberada pada mesin yang menerima permintaan tersebut, sehingga tidak perlu untuk awalandengan http://www.thismachine.com/.HTTP/1.0 adalah versi protokol yangklien mengerti. Permintaan diakhiri dengan dua carriage return / linefeedpasang (\ r \ n \ r \ n dalam bahasa Jawa), terlepas dari bagaimana garis dihentikan padaklien atau platform server.Meskipun garis GET adalah semua yang diperlukan, permintaan klien dapat mencakup lainnyaInformasi juga. Ini mengambil bentuk sebagai berikut:Kata Kunci: NilaiKata kunci tersebut yang paling umum adalah Terima, yang memberitahu server apa jenisData klien dapat menangani (meskipun server sering mengabaikan ini). Sebagai contoh,baris berikut mengatakan bahwa klien dapat menangani empat jenis MIME media, yang sesuaidokumen HTML, teks biasa, dan gambar JPEG dan GIF:Terima: text / html, text / plain, image / gif, image / jpegUser-Agent merupakan kata kunci umum yang memungkinkan server tahu apa browsersedang digunakan, yang memungkinkan server untuk mengirim file dioptimalkan untuk tertentujenis browser. Baris di bawah ini mengatakan bahwa permintaan datang dari Versi 2.4 dariLynx browser:User-Agent: Lynx/2.4 libwww/2.1.4Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.56 | Bab 3: Konsep Dasar WebSemua kecuali generasi pertama tertua browser juga termasuk bidang host menentukanserver nama, yang memungkinkan server web untuk membedakan antara yang berbedahost bernama disajikan dari alamat IP yang sama. Berikut ini contohnya:Host: www.cafeaulait.orgAkhirnya, permintaan diakhiri dengan garis kosong-yaitu return, dua kereta /pasang linefeed, \ r \ n \ r \ n. Permintaan lengkap mungkin terlihat seperti ini:GET / index.html HTTP/1.0Terima: text / html, text / plain, image / gif, image / jpegUser-Agent: Lynx/2.4 libwww/2.1.4Host: www.cafeaulait.orgSelain GET, ada beberapa jenis permintaan lainnya. KEPALA hanya mengambilheader untuk file, bukan data yang sebenarnya. Ini biasanya digunakan untuk memeriksa modifikasitanggal dari file, untuk melihat apakah salinan disimpan di cache lokal masihvalid. POST mengirimkan data formulir ke server, PUT upload sumber daya untuk server,dan DELETE menghapus sumber daya dari server.TanggapanServer mengirimkan respon kepada klien. Tanggapan dimulai dengan responkode, diikuti oleh sebuah header penuh metadata, baris kosong, dan dokumen yang dimintaatau pesan kesalahan. Dengan asumsi dokumen yang diminta ditemukan, khasrespon terlihat seperti ini:HTTP/1.1 200 OKTanggal: Mon, 15 Sep 2003 21:06:50 GMTServer: Apache/2.0.40 (Red Hat Linux)Last-Modified: Tue, 15 Apr 2003 17:28:57 GMTKoneksi: tutupContent-Type: text / html; charset = ISO-8859-1Content-length: 107<html><head><title>Sebuah Contoh file HTML</ Title></ Head><body>Sisa dokumen masuk sini</ Body></ Html>Baris pertama menunjukkan protokol server menggunakan (HTTP/1.1), diikuti olehkode respon. 200 OK adalah kode respon yang paling umum, menunjukkan bahwaPermintaan berhasil. Tabel 3-1 adalah daftar lengkap kode respon yang digunakan olehHTTP 1.0, HTTP 1.1 menambahkan lebih banyak untuk daftar ini. Garis header lain mengidentifikasitanggal permintaan itu dibuat dalam kerangka waktu server, perangkat lunak server(Apache 2.0.40), tanggal dokumen ini terakhir diubah, janji bahwaserver akan menutup koneksi ketika selesai mengirimkan, konten MIMEIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.HTTP | 57jenis, dan panjang dari dokumen yang disampaikan (tidak termasuk header ini)-inkasus ini, 107 byte.Menutup koneksiEntah klien atau server atau keduanya hubungan dekat itu. Dengan demikian, jaringan yang terpisahKoneksi digunakan untuk setiap permintaan. Jika klien menghubungkan, servermempertahankan tidak ingat dari koneksi sebelumnya atau hasil-hasilnya. Sebuah protokol yangmempertahankan tidak ingat permintaan masa lalu disebut stateless, sebaliknya, sebuah stateful protocolseperti FTP dapat memproses banyak permintaan sebelum koneksi ditutup.Kurangnya negara adalah kekuatan sekaligus kelemahan dari HTTP.Tabel 3-1. HTTP 1.0 respon kodeKode respon ArtiKode Respon 2xx Sukses antara 200 dan 299 menunjukkan bahwa permintaan itu diterima, dipahami, danditerima.200 OK Ini adalah kode respon yang paling umum. Jika permintaan digunakan GET atau POST, data yang diminta adalahterkandung dalam respon bersama dengan header yang biasa. Jika permintaan yang digunakan KEPALA, hanya headerInformasi disertakan.201 Dibuat Server telah menciptakan sebuah file data pada URL yang ditentukan dalam tubuh respon. Browser websekarang harus mencoba untuk memuat URL itu. Ini dikirim hanya dalam menanggapi permintaan POST.202 Diterima ini respon agak jarang menunjukkan bahwa permintaan (umumnya dari POST) sedang diproses,tetapi pengolahan belum lengkap sehingga tidak ada respon dapat dikembalikan. Server harus mengembalikanHalaman HTML yang menjelaskan situasi kepada pengguna, memberikan perkiraan kapan permintaan tersebut cenderungakan selesai, dan, idealnya, memiliki link ke monitor status beberapa jenis.204 Konten Tidak ada server telah berhasil diproses permintaan tetapi tidak memiliki informasi untuk mengirim kembali ke klien.Ini biasanya merupakan hasil dari program form-processing ditulis dengan buruk yang menerima data tetapi tidakkembali respon terhadap pengguna menunjukkan bahwa mereka telah selesai.Kode Respon 3xx Redirection 300-399 menunjukkan bahwa browser web harus pergi ke halaman yang berbeda.300 Multiple Choices halaman yang diminta tersedia dari satu atau lebih lokasi. Tubuh respon meliputi daftarlokasi dari mana pengguna atau browser web dapat memilih salah satu yang paling tepat. Jika servermemilih salah satu lokasi, URL pilihan ini termasuk dalam header Lokasi yang webbrowser dapat digunakan untuk memuat halaman lebih disukai.301 DipindahkanTetapHalaman ini telah pindah ke URL baru. Browser web secara otomatis memuat halaman di URL inidan memutakhirkan setiap bookmark yang mengarah ke URL lama.302 DipindahkanUntuk sementaraIni kode respon yang tidak biasa menunjukkan bahwa halaman tersebut untuk sementara di URL baru tapi bahwa dokumenlokasi akan berubah lagi di masa mendatang, sehingga bookmark tidak harus diperbarui.304 Not Modified Klien telah melakukan permintaan GET tetapi digunakan header Jika-Diubah-Sejak untuk menunjukkanbahwa ia ingin dokumen hanya jika telah diperbarui baru-baru ini. Kode status ini dikembalikan karenadokumen belum diperbarui. Web browser sekarang akan memuat halaman dari cache.4xx Client Kode Respon Kesalahan 400-499 menunjukkan bahwa klien telah keliru dalam beberapa mode, meskipunkesalahan dapat dengan mudah menjadi hasil dari koneksi jaringan tidak dapat diandalkan pada kereta atau tidak sesuaiweb browser. Browser harus menghentikan pengiriman data ke server segera setelah menerima 4xxrespon. Kecuali itu menanggapi permintaan HEAD, server harus menjelaskan status kesalahan dalamtubuh respon.400 Bad Request The permintaan klien ke server menggunakan sintaks yang tidak benar. Hal ini agak tidak biasa, meskipun kemungkinan untukterjadi jika Anda sedang menulis dan debugging klien.Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.58 | Bab 3: Konsep Dasar WebHTTP 1.1 lebih dari dua kali lipat jumlah tanggapan. Namun, kode respon200-299 selalu menunjukkan keberhasilan, kode respon 300-399 selalumengindikasikan pengalihan, satu 400-499 selalu menunjukkan kesalahan klien, dan satu500-599 menunjukkan kesalahan server.HTTP 1.0 didokumentasikan dalam RFC 1945 informasi, itu bukan merupakan Internet resmistandar karena itu terutama dikembangkan di luar IETF oleh browser awal danserver vendor. HTTP 1.1 adalah standar yang diusulkan sedang dikembangkan oleh W3C dankerja HTTP kelompok IETF. Ini memberikan lebih fleksibel dan kuatkomunikasi antara klien dan server. Ini juga jauh lebih scalable. Sekarangdidokumentasikan dalam RFC 2616. HTTP 1.0 adalah versi dasar protokol. Semua saat iniweb server dan browser memahaminya. HTTP 1.1 menambahkan fitur banyak untuk HTTP1.0, tetapi tidak mengubah desain atau arsitektur yang mendasari dengan cara apapun yang signifikan.Untuk keperluan buku ini, biasanya akan cukup untuk memahami HTTP 1.0.Peningkatan utama dalam HTTP 1.1 adalah ulang koneksi. HTTP 1.0 membuka barukoneksi untuk setiap permintaan. Dalam prakteknya, waktu yang dibutuhkan untuk membuka dan menutup semuakoneksi dalam sesi web yang khas dapat lebih besar daripada waktu yang dibutuhkan untuk mengirimkan data,terutama untuk sesi dengan dokumen kecil. HTTP 1.1 memungkinkan browser untuk mengirimbanyak berbeda permintaan melalui koneksi tunggal, sambungan tetap terbuka sampaisecara eksplisit ditutup. Permintaan dan tanggapan yang asynchronous semua. Browsertidak perlu menunggu untuk menanggapi permintaan pertama sebelum mengirim kedua atauketiga. Namun, tetap terikat pada basicpattern dari permintaan klien diikuti oleh401 Otorisasi tidak sah, umumnya username dan password dikendalikan, diperlukan untuk mengakses halaman ini. Salah satuusername dan password belum disajikan atau username dan password yangvalid.403 Forbidden Server memahami permintaan tetapi sengaja menolak untuk memprosesnya. Otorisasi tidak akanmembantu. Salah satu alasan ini terjadi adalah bahwa klien meminta daftar direktori tetapi server tidak dikonfigurasiuntuk menyediakannya, seperti yang ditunjukkan pada Gambar 3-1.404 Tidak Ditemukan ini respon kesalahan yang paling umum menunjukkan bahwa server tidak dapat menemukan halaman yang diminta. Ini mungkinmenunjukkan hubungan yang buruk, halaman yang telah bergerak tanpa alamat forwarding, salah ketik URL, atau sesuatuserupa.5xx Server Kode Respon Kesalahan 500-599 mengindikasikan bahwa ada sesuatu yang tidak beres dengan server, danserver tidak bisa memperbaiki masalah.500 internal ServerKesalahanKondisi yang tidak terduga terjadi bahwa server tidak tahu bagaimana menangani.501 Not Implemented Server tidak memiliki fitur yang dibutuhkan untuk memenuhi permintaan ini. Sebuah server yang tidak dapat menanganiPermintaan POST bisa mengirim respon ini ke klien yang mencoba POST data formulir untuk itu.502 Bad Gateway respon ini hanya berlaku untuk server yang bertindak sebagai proxy atau gateway. Hal ini menunjukkan bahwa proxymenerima respon tidak valid dari server itu menghubungkan ke dalam upaya untuk memenuhi permintaan.503 LayananTidak TersediaServer untuk sementara tidak dapat menangani permintaan, mungkin sebagai akibat dari overloading ataupemeliharaan.Tabel 3-1. HTTP kode respon 1.0 (lanjutan)Kode respon ArtiIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.MIME Jenis Media | 59respon server. Setiap permintaan dan respon memiliki bentuk dasar yang sama: garis header,HTTP header yang berisi metadata, baris kosong, dan kemudian data itu sendiri.Ada banyak lainnya, perbaikan kecil di HTTP 1.1. Permintaan termasuk HostHeader lapangan sehingga satu server web dengan mudah dapat melayani situs yang berbeda pada URL yang berbeda.Server dan browser dapat bertukar file yang dikompresi dan rentang byte tertentu dari sebuahDokumen, yang keduanya penurunan lalu lintas jaringan. Dan HTTP 1.1 ini dirancang untukbekerja lebih baik dengan server proxy. HTTP 1.1 merupakan superset dari HTTP 1.0, sehingga HTTP1,1 server web tidak memiliki masalah berinteraksi dengan browser yang lebih tua yang hanya berbicaraHTTP 1.0, dan sebaliknya.MIME Jenis MediaMIME adalah standar terbuka untuk mengirim multipart, data multimedia melalui Internetemail. Data biner mungkin, atau mungkin menggunakan karakter ASCII dan non-ASCII beberapaset. Meskipun MIME awalnya ditujukan hanya untuk email, telah menjadibanyak digunakan teknik untuk menggambarkan isi sebuah file sehingga software client dapat memberitahuperbedaan antara berbagai jenis data. Sebagai contoh, browser web menggunakan MIMEuntuk mengetahui apakah suatu file gambar GIF atau file PostScript dicetak.Secara resmi, MIME singkatan dari Multipurpose Internet Mail Extensions,yang merupakan perluasan dari akronim yang digunakan dalam RFC 2045. Namun,Anda akan mendengar versi lainnya-yang paling sering Multipart Internet MailEkstensi dan Ekstensi Internet Multimedia Mail.MIME mendukung lebih dari 100 jenis standar isi. Jenis konten diklasifikasikanpada dua tingkat: tipe dan subtipe. Tipe menunjukkan sangat umum jenis dataterkandung: apakah itu gambar, teks, atau film? Subtipe mengidentifikasi tipe data tertentu:GIF gambar, gambar JPEG, TIFF gambar. Sebagai contoh, jenis konten HTML adalah text / html;jenisnya adalah teks, dan subtipe adalah html. Jenis konten untuk gambar GIF adalah gambar / gif;jenisnya adalah gambar, dan subtipe adalah gif. Tabel 3-2 daftar isi didefinisikan lebih umumjenis. Pada kebanyakan sistem, file teks sederhana mempertahankan pemetaan antara MIMEjenis dan aplikasi yang digunakan untuk memproses jenis data, di Unix, file ini disebutmime.types. Daftar terbaru dari jenis MIME terdaftar tersedia dari http://www.iana.org/assignments/media-types/. Untuk lebih lanjut tentang MIME, lihat comp.mail.mime tersebutFAQ di http://www.uni-giessen.de/faq/archiv/mail.mime-faq.part1-9/.Server Web menggunakan MIME untuk mengidentifikasi jenis data mereka mengirim. Klien web menggunakanMIME untuk mengidentifikasi jenis data mereka bersedia menerima. Sebagian besar web server dan klienmemahami setidaknya dua jenis teks konten MIME, text / html dan text / plain,dan format gambar dua, image / gif dan image / jpeg. Browser yang lebih baru juga mengertiaplikasi / xml dan beberapa format gambar lainnya. Java bergantung pada jenis MIME untukmemilih handler konten yang sesuai untuk aliran data tertentu.Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.60 | Bab 3: Konsep Dasar WebTabel 3-2. Predefined jenis konten MIMETipe Subtipe Deskripsidokumen teks tersebut merupakan teks dicetak.kalender Kalender dan penjadwalan informasi dalam format iCalendar, lihat RFC 2.445.css Sebuah Gaya Cascading Lembar digunakan untuk HTML dan XML.direktori Alamat buku informasi seperti nama, nomor telepon, dan alamat email;digunakan oleh vCards Netscape, didefinisikan dalam RFC 2.425 dan 2.426.diperkaya Sebuah bahasa HTML-seperti yang sangat sederhana untuk menambahkan font dasar dan ayat-tingkatformat seperti bold dan italic untuk email, digunakan oleh Eudora, didefinisikan dalam RFC1896.html Hypertext Markup Language seperti yang digunakan oleh browser web.Dataran ini seharusnya menyiratkan teks ASCII baku. Namun, beberapa server web menggunakantext / plain sebagai default tipe MIME untuk file apapun mereka tidak bisa mengenali.Oleh karena itu, apa saja dan segalanya, file byte kode kelas terutama., Dapatmendapatkan diidentifikasi sebagai teks / file biasa.richtext Sebuah markup HTML-seperti untuk format encoding ke dalam teks ASCII murni. Tidak pernahbenar-benar tertangkap, sebagian besar karena popularitas HTML.rtf Sebuah didefinisikan tidak sempurna Microsoft format file pengolah kata.sgml The Standard Generalized Markup Language, ISO 8879:1986 standar.tab-dipisahkan-nilai Format interchange digunakan oleh banyak spreadsheet dan database; catatan yangdipisahkan oleh linebreaks dan bidang dengan tab.xml The Extensible Markup Language W3C standar. Karena berbagai alasan teknis,aplikasi / xml harus digunakan sebagai gantinya, tetapi sering tidak.multipart pesan MIME Multipart menyandikan file yang berbeda ke dalam satu pesan.campuran bagian pesan Beberapa dimaksudkan untuk melihat berurutan.Alternatif pesan yang sama dalam berbagai format sehingga klien dapat memilih yang palingnyaman satu.mencerna Sebuah format populer untuk menggabungkan banyak pesan email ke dalam mencerna tunggal; digunakanoleh banyak milis dan beberapa daftar FAQ.Beberapa bagian paralel dimaksudkan untuk melihat secara simultan.byteranges rentang Beberapa byte secara terpisah berdekatan, digunakan di HTTP 1.1.dienkripsi Satu bagian untuk badan pesan dan satu bagian untuk informasi yang diperlukanuntuk memecahkan kode pesan.ditandatangani Salah satu bagian untuk tubuh pesan dan satu bagian untuk tanda tangan digital.Senyawa dokumen terkait yang dibentuk dengan menggabungkan beberapa bagian yang lebih kecil.form-data Formulir tanggapan.Sebuah pesan pesan email.eksternal-tubuh Hanya header dari pesan email, tubuh pesan tidak termasuk tetapiada di beberapa lokasi lain dan dirujuk, mungkin dengan URL.http Sebuah HTTP 1.1 permintaan dari klien web ke server web.Sebuah berita artikel berita.Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.MIME Jenis Media | 61parsial Bagian dari pesan email yang panjang telah dibagi menjadi beberapa bagian untuk memungkinkanpenularan melalui gateway email.RFC822 Sebuah pesan email standar termasuk header.gambar dua dimensi gambar.Sebuah CGM Computer Graphics Metafile format gambar. CGM adalah ISO 8632:1992 standaruntuk perangkat-independen grafis vektor dan gambar bitmap.g3fax Standar untuk gambar bitmap faks.gif Sebuah Graphics Interchange Format gambar.jpeg The Joint Photographic Experts Group format file untuk gambar bitmap denganlossy kompresi.png Sebuah Portable Network Graphics Format gambar. Format ini dikembangkan diW3C sebagai pengganti modern untuk GIF yang mendukung warna 24-bit dan tidakdibebani oleh hak paten.tiff File Tagged Image Format dari Adobe.Audio Sound.dasar 8-bit ISDN audio yang μ-hukum yang dikodekan dengan satu saluran dan tingkat sampeldelapan kilohertz. Ini adalah format yang digunakan oleh. Au dan file snd dan. Didukung olehkelas java.applet.AudioClip.video Video.mpeg Motion Picture Experts Group format untuk data video dengan kompresi lossy.Quicktime Apple QuickTime proprietary format film. Sebelum dimasukkan dalam MIMEpesan, file QuickTime harus "diratakan".Model 3-D gambar.VRML Sebuah Modeling Reality berkas Bahasa Virtual, format untuk 3-D data di Web.IGES The Spesifikasi Graphics awal Exchange untuk dokumen interchangingantara program CAD yang berbeda.jala struktur jaring yang digunakan dalam elemen hingga dan metode beda hingga.aplikasi Binary data spesifik untuk beberapa aplikasi.octet-stream data biner Unspecified, yang biasanya disimpan ke sebuah file bagi pengguna. IniJenis MIME ini kadang-kadang digunakan untuk melayani. File byte kode kelas.java A subtipe tidak standar kadang-kadang digunakan untuk melayani. file byte kode kelas.postscript Adobe PostScript.DCA-RFT IBM Dokumen Content Arsitektur-Richly Teks Terformat.mac-BinHex40 Sebuah cara pengkodean dua garpu dari dokumen Macintosh dalam ASCII tunggalfile.pdf An Adobe Acrobat file.zip Sebuah file zip yang dikompresi.macwriteii Sebuah MacWrite II pengolah kata dokumen.msword Sebuah dokumen Microsoft Word.Tabel 3-2. Predefined konten jenis MIME (lanjutan)Tipe Subtipe DeskripsiIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.62 | Bab 3: Konsep Dasar WebSebuah program MIME-compliant tidak diperlukan untuk memahami semua jenisdata, itu hanya perlu untuk mengenali apa yang bisa dan tidak bisa menangani. Banyak program-Netscape Navigator, misalnya menggunakan program-helper untuk menampilkan berbagai jenispuas mereka sendiri tidak mengerti.MIME memungkinkan Anda untuk menentukan subtipe tidak standar tambahan dengan menggunakan prefiks x-.Sebagai contoh, jenis konten aplikasi / x-tex memiliki aplikasi tipe MIMEdan subtipe tidak standar x-tex untuk dokumen TeX. Ini x-jenis yang tidak dijamindipahami oleh program lain daripada yang menciptakan mereka.Memang, dua program dapat menggunakan x-jenis yang sama berarti dua yang sama sekali berbedahal, atau program yang berbeda dapat menggunakan berbagai x-jenis berarti hal yang sama.Namun, jenis tidak standar banyak telah datang ke dalam penggunaan umum, beberapa lebihyang umum tercantum pada Tabel 3-3.xml + xhtml Sebuah dokumen XHTMLxml Sebuah dokumen Bahasa Extensible Markup.Tabel 3-3. X-jenisTipe X-subtipe DeskripsiAplikasi Subtipe dari aplikasi, nama subtipe biasanya format filenama atau nama aplikasi.x-aiff SGI AIFF data audio format.x-bitmap An X Windows bitmap image.x-gzip Data dikompresi dalam format gzip GNU.x-dvi A TeX DVI dokumen.x-Framemaker Sebuah dokumen FrameMaker.x-lateks A LaTeX dokumen.x-macBinHex40 software Identik dengan application/mac-BinHex40, tapi lebih tua dapat menggunakanini x-jenis bukan.x-mif Sebuah dokumen FrameMaker MIF.x-sd Sebuah direktori sesi protokol pengumuman, digunakan untuk mengumumkan MBONEperistiwa.x-shar A shell arsip; setara dengan Unix dari Windows atau Macintosh self-extractingarsip. Software tidak harus dikonfigurasi untuk membongkar arsip shell secara otomatis,karena arsip shell dapat memanggil program pengguna yang berjalan itumemiliki hak untuk memanggil.x-tar tar A arsip.x-gtar A GNU tar arsip.x-tcl Perintah alat bahasa (TCL) program. Anda tidak boleh mengkonfigurasiweb browser atau program email untuk secara otomatis menjalankan program yang Anda downloaddari web atau menerima dalam pesan email.Tabel 3-2. Predefined konten jenis MIME (lanjutan)Tipe Subtipe DeskripsiIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.Server-Side Program | 63Server-Side ProgramHari-hari ini banyak halaman web tidak dilayani dari StaticFiles pada hard drive. Sebaliknya,server menghasilkan secara dinamis untuk memenuhi permintaan pengguna. Konten tersebut mungkin tidakditarik dari database atau dihasilkan algorithmically oleh sebuah program. Memang, sebenarnyaHalaman dikirim ke klien mungkin berisi data yang digabungkan dari beberapa sumber yang berbeda.Di Jawa, seperti server-side program sering ditulis menggunakan servlets atau Java Server Pages(JSP). Mereka juga dapat ditulis dengan bahasa lain, seperti C dan Perl, atau lainnyakerangka kerja, seperti ASP dan PHP. Perhatian dalam buku ini tidak begitu banyak dengan caraprogram ini ditulis seperti bagaimana program Anda berkomunikasi dengan mereka. SatuKeuntungan untuk HTTP adalah bahwa hal itu benar-benar tidak peduli bagaimana sisi lain dari koneksiditulis, asalkan berbicara protokol dasar yang sama HTTP.x-tex A TeX dokumen.x-texinfo A GNU texinfo dokumen.x-troff A troff dokumen.x-troff-Seorang pria dokumen troff ditulis dengan macro man.x-troff-me Sebuah dokumen troff yang harus diolah menggunakan macro tema.x-troff-ms Sebuah dokumen troff yang harus diproses dengan menggunakan macro ms.x-wais-sumber Sebuah sumber WAIS.x-www-form-urlencodedSebuah string yang telah dikodekan seperti URL, dengan + spasi mengganti dan%lolos mengganti karakter non-alfanumerik yang tidak pemisah.Audiox-aiff Sama seperti aplikasi / x-aiff: AIFF file audio.x-mpeg Format suara MP3.x-mpeg.mp3 Format MP3 suara.x-wav Windows WAV format suara.gambarx-cocok Format gambar FITS digunakan terutama oleh para astronom.x-macpict Sebuah gambar Macintosh PICT.x-pict Sebuah gambar Macintosh PICT.x-MacPaint Sebuah gambar MacPaint.x-pbm Sebuah gambar bitmap portabel.x-portabel-bitmap Sebuah gambar bitmap portabel.x-A PGM PGM gambar.Videox-msvideo A Microsoft AVI Video untuk Windows.x-sgi-Film Silicon Graphics film.Tabel 3-3. X-jenis (lanjutan)Tipe X-subtipe DeskripsiIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.64 | Bab 3: Konsep Dasar WebServer-side sederhana program berjalan tanpa masukan dari pengguna. Darisudut pandang klien, program ini diakses seperti halaman web lain dantidak menjadi perhatian banyak buku ini. Perbedaan antara halaman web yang dihasilkanoleh program yang tidak mengambil masukan dan halaman web yang ditulis dalam staticHTML adalah semua padasisi server. Saat menulis klien, Anda tidak perlu tahu atau peduli apakah webserver Anda makan sebuah file atau output dari beberapa program itu berlari. Anda antarmuka keserver adalah sama dalam kedua kasus.Sebuah server-side yang sedikit lebih kompleks Program proses pengguna masukan dari HTMLbentuk. Suatu bentuk web pada dasarnya hanya cara mengumpulkan masukan dari pengguna, membagimenjadi potongan-potongan yang rapi, dan melewati potongan-potongan untuk beberapa program pada server. Seorang klienditulis di Jawa dapat melakukan fungsi yang sama, baik dengan meminta pengguna untuk masukan dalamsendiri GUI atau dengan memberikan informasi yang unik.HTTP menyediakan, sarana standar dipahami dan didukung untuk Javaapplet dan aplikasi untuk berbicara dengan sistem jarak jauh, karena itu, saya akan membahas bagaimana menggunakanJava untuk kedua menerima dan mengirim data ke server. Ada cara lain untuk program Javauntuk berbicara dengan server, termasuk Method Invocation Remote (RMI) dan SOAP.Namun, RMI lambat dan SOAP cukup kompleks. Dengan cara Sebaliknya, HTTP adalahmatang, kuat, lebih baik didukung seluruh platform dan server web, dan lebih baikdipahami dalam komunitas pengembangan web.Contoh 3-1 dan Gambar 3-3 menunjukkan bentuk sederhana dengan dua bidang yang mengumpulkan namadan alamat email. Nilai-nilai pengguna masuk dalam bentuk dikirim kembali keserver ketika pengguna menekan "Kirim Pertanyaan" tombol. Program untuk dijalankan ketikadata formulir yang diterima / cgi / reg.pl, program ini ditetapkan dalam atribut ACTIONdari elemen FORM. URL dalam parameter ini biasanya URL relatif, seperti dicontoh ini.Web browser membaca data jenis pengguna dan encode dengan cara yang sederhana.Nama setiap field dipisahkan dari nilainya oleh tanda sama dengan (=). BerbedaContoh 3-1. Suatu bentuk sederhana dengan field input untuk nama dan alamat email<HTML><HEAD><TITLE> Form Contoh </ TITLE></ HEAD><BODY><form METHOD=GET ACTION="/cgi/reg.pl"><pre>Silakan masukkan nama Anda: <input name="username" SIZE=40>Silakan masukkan alamat email Anda: <INPUT NAME="email" SIZE=40></ PRE><INPUT TYPE="SUBMIT"></ FORM></ BODY></ HTML>Ini adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.Server-Side Program | 65bidang yang terpisah satu sama lain oleh ampersand (&). Setiap nama field dan nilaiadalah x-www-form-url-encoded, yaitu, setiap karakter non-ASCII atau pendiam yangdigantikan dengan tanda persen diikuti oleh digit heksadesimal memberikan nilai untuk ituKarakter dalam beberapa set karakter. Ruang adalah kasus khusus karena mereka begitu umum.Bukannya dikodekan sebagai 20%, mereka menjadi tanda +. Tanda plus sendiridikodekan sebagai 2b%. Sebagai contoh, data dari form pada Gambar 3-3 dikodekan sebagai:username = Elliotte + Harold & email = elharo% 40macfaq.comIni disebut string query.Ada dua metode yang query string dapat dikirim ke server: GET danPOST. Jika bentuk menentukan metode GET, browser menempel string query untukURL yang dikirimkan ke server. Bentuk yang menentukan POST mengirimkan query string padaoutput stream. Bentuk dalam Contoh 3-1 menggunakan GET untuk berkomunikasi dengan server, sehinggaterhubung ke server dan mengirim perintah berikut:GET / cgi / reg.pl username =? Elliotte + Harold & email = elharo% 40macfaq.com HTTP/1.0Server menggunakan komponen jalur dari URL untuk menentukan program mana yang harusmenangani permintaan ini. Ini melewati set string query terhadap pasangan nama-nilai untuk program tersebut,yang biasanya bertanggung jawab untuk membalas klien.Dengan metode POST, web browser mengirimkan header biasa dan mengikuti merekadengan baris kosong (dua berturut carriage return / pasang linefeed) dan kemudian mengirimkanpermintaan string. Jika bentuk dalam Contoh 3-1 digunakan POST, itu akan mengirimkan ini ke server:POST / cgi-bin/register.pl HTTP 1.0Content-type: application / x-www-form-urlencodedContent-length: 65username = Elliotte + Harold & email = elharo% 40metalab.unc.eduAda tag berbagai bentuk yang berbeda dalam HTML yang menghasilkan pop-up menu, tombol radio,dan banyak lagi. Namun, meskipun widget masukan tampak berbeda kepada pengguna,format data yang mereka kirim ke server yang sama. Setiap elemen bentuk menyediakannama dan nilai string disandikan.Gambar 3-3. Bentuk sederhanaIni adalah Judul Kitab, eMatter EditionHak Cipta © 2011 O'Reilly & Associates, Inc All rights reserved.66 | Bab 3: Konsep Dasar WebKarena permintaan GET mencakup semua informasi yang diperlukan dalam URL, mereka bisa bookmarked,terkait dengan, jelajahi, googled, dan sebagainya. Hasil dari permintaan POST tidak bisa.Ini disengaja. GET ditujukan untuk tindakan noncommital, seperti browsingstaticweb halaman. POST ditujukan untuk tindakan yang berkomitmen untuk sesuatu. Misalnya,menambahkan item ke keranjang belanja harus dilakukan dengan GET, karena tindakan initidak melakukan, Anda masih dapat meninggalkan gerobak. Namun, penempatan order harusdilakukan dengan POST karena tindakan yang membuat komitmen. Inilah sebabnya mengapa browsermeminta Anda jika Anda yakin ketika Anda kembali ke halaman yang menggunakan POST (seperti yang ditunjukkan padaGambar 3-4). Reposting data dapat membeli dua eksemplar buku dan biaya kredit Andakartu dua kali.Dalam prakteknya, POST adalah jauh berlebihan di web hari ini. Setiap operasi yang aman yang tidaktidak melakukan apa pun pengguna harus menggunakan GET bukan POST. Hanya operasiyang melakukan pengguna harus menggunakan POST.Gambar 3-4. Repost konfirmasi
Subscribe to:
Post Comments (Atom)