Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
cc290f4
Kelompok2/Esi
EsiVidiaRahcmadani Apr 4, 2018
6a66dde
Kelompok2/Syadilah
syadilahsiregar Apr 4, 2018
27ec44a
Kelompok2/Syadilah
syadilahsiregar Apr 5, 2018
6ddc436
Kelompok2/Naufal
naufalscofield Apr 5, 2018
3e8df7a
Kelompok2/Reghina
reghinapa Apr 4, 2018
c8cb290
Kelompok2/Reghina
reghinapa Apr 5, 2018
c4d0df6
Kelompok2/Ojack
OjackRiyanto Apr 5, 2018
777418a
kelompok2/naufal
naufalscofield Apr 5, 2018
49094e7
Kelompok2/Esi
EsiVidiaRahcmadani Apr 5, 2018
871cddd
Kelompok2/Ojack
OjackRiyanto Apr 6, 2018
7333387
Kelomok2-Reghina
reghinapa Apr 6, 2018
7df027d
Kelompok2/Esi
EsiVidiaRahcmadani Apr 6, 2018
802136c
Kelompok2/Esi
EsiVidiaRahcmadani Apr 6, 2018
dfbbadc
kelompok2/naufal
naufalscofield Apr 7, 2018
d39f7c2
Kelompok2/Syadilah
syadilahsiregar Apr 6, 2018
629ec22
Kelompok2/Syadilah
syadilahsiregar Apr 7, 2018
6a20bc4
Kelompok2/Ojack
OjackRiyanto Apr 7, 2018
8dbeb2d
kelompok2/Naufal
naufalscofield Apr 7, 2018
888d2b4
Kelompok2/Reghina
reghinapa Apr 7, 2018
0f14f47
Kelompok2/Reghina
reghinapa Apr 8, 2018
b5f4b53
Kelompok2/Ojack
OjackRiyanto Apr 8, 2018
26b0c34
Kelompok2/Syadilah
syadilahsiregar Apr 8, 2018
179d0d3
Kelompok2/Esi
EsiVidiaRahcmadani Apr 8, 2018
dbe5307
kelompok2/naufal
naufalscofield Apr 9, 2018
a6a0b58
Kelompok2/Syadilah
syadilahsiregar Apr 9, 2018
2334e60
Kelompok2/Ojack
OjackRiyanto Apr 9, 2018
e8b16c9
Kelompok2/Esi
EsiVidiaRahcmadani Apr 9, 2018
5aee2ef
kelompok2/naufal
naufalscofield Apr 10, 2018
e21d1de
Kelompok2/Reghina
reghinapa Apr 9, 2018
b4144bd
kelompok2/esi
EsiVidiaRahcmadani May 8, 2018
c9a6364
kel2/esii
EsiVidiaRahcmadani May 8, 2018
2d56135
Kelompok2/Ojack
OjackRiyanto May 24, 2018
56fc4b6
Kelompok2/Reghina
reghinapa May 24, 2018
0d44212
Kelompok2/Esi
EsiVidiaRahcmadani May 24, 2018
15c4be1
kelompok2/naufal
naufalscofield May 25, 2018
49a889f
Kelompok2/Syadilah
syadilahsiregar May 24, 2018
2690aa5
Kelompok2/Syadilah
syadilahsiregar May 25, 2018
f457fe1
Kelompok2/Ojack
OjackRiyanto May 25, 2018
8e1dffe
Kelompok2/Reghina
reghinapa May 25, 2018
f63b566
kel2/naufal
naufalscofield May 26, 2018
447a196
Kelompok2/Esi
EsiVidiaRahcmadani May 25, 2018
ddc4181
Kelompok2/Reghina
reghinapa May 26, 2018
d247fc4
Kelompok2/Syadilah
syadilahsiregar May 26, 2018
e50133c
Kelompok2/Ojack
OjackRiyanto May 26, 2018
3acd5c1
kel2/naufal
naufalscofield May 27, 2018
81aa003
Kelompok2/Esi
EsiVidiaRahcmadani May 27, 2018
c398c8c
Kelompok2/Ojack
OjackRiyanto May 27, 2018
acd3f3c
Kelompok2/Syadilah
syadilahsiregar May 27, 2018
7c67527
kel2/naufal
naufalscofield May 28, 2018
e8decfd
Kelompok2/Esi
EsiVidiaRahcmadani May 28, 2018
f4fc53b
Kelompok2/Reghina
reghinapa May 27, 2018
3eb60eb
Kelompok2/Syadilah
syadilahsiregar May 28, 2018
0d70d58
Kelompok2/Esi
EsiVidiaRahcmadani May 29, 2018
33d572c
Kelompok2/Ojack
OjackRiyanto May 28, 2018
43760d1
kel2/naufal
naufalscofield May 29, 2018
6f010be
Kelompok2/Reghina
reghinapa May 28, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -661,11 +661,11 @@ @misc{kusuma2016implementasi
publisher={Manajemen Informatika, Fakultas Teknik, Universitas Negeri Surabaya}
}

@phdthesis{ornai2016remote,
title={Remote Dekstop dengan VNC Melalui Jaringan Internet Berbasis Miktrotik},
author={Ornai, David},
year={2016},
school={Program Studi Diploma Teknik Informatika FTI UKSW}
@phdthesis{ornai2016remote,
title={Remote Dekstop dengan VNC Melalui Jaringan Internet Berbasis Miktrotik},
author={Ornai, David},
year={2016},
school={Program Studi Diploma Teknik Informatika FTI UKSW}
}

@article{muzawi2016aplikasi,
Expand Down Expand Up @@ -771,10 +771,10 @@ @article{listiyono2009program
year={2009}
}

@misc{farmer1993improving,
title={Improving the security of your site by breaking into it},
author={Farmer, Dan and Venema, Wietse},
year={1993}
@misc{farmer1993improving,
title={Improving the security of your site by breaking into it},
author={Farmer, Dan and Venema, Wietse},
year={1993}
}

@article{sugengperancangan,
Expand Down Expand Up @@ -924,3 +924,12 @@ @article{saputra2012upaya
number={1},
year={2012}
}

@article{Robinson2004the,
title={The Common Gateway Interface (CGI) Version 1.1},
author={David, Robinson and Ken, A, L, Coar},
journal={}
volume={}
number={}
year={2004}
}
122 changes: 122 additions & 0 deletions section/1Definisi_Dan_Contoh_CGI.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
%membuat dokumen
\documentclass{article}
\usepackage[indonesian]{babel} %untuk pemenggalan kata bahasa indonesia
\title{Definisi Dan Contoh CGI}
\author{Kelompok 2}
\date{4 April 2018}

\begin{document}
\maketitle
\section{Abstraksi}
Common Gateway Interface atau CGI adalah interface sederhana untuk menjalankan program external,perangkat lunak/software atau gateway dibawah information server di dalam platform independen.saat ini information server telah didukung oleh HTTP Server
Antar muka ini telah digunakan oleh world wide web atau www sejak 1993. Spesifikasinya didefinisikan sebagai parameter praktek terkini dari antarmuka CGI/1.1 yang dikembangkan dan didokumentasikan di Pusat Aplikasi supercomputer nasiona AS.
\section{Tujuan}
Common Gateway Interface (CGI) mengijinkan HTTP server dan script CGI untuk berbagi tanggung jawab untuk menanggapi permintaan client. Permintaan client terdiri dari Uniform Resource Identifier (URI), metode permintaan, dan berbagai informasi tambahan tentang permintaan yang disediakan oleh transport protocol.
CGI mendefinisikan parameter abstrak, dikenal sebagai meta-variabel, yang menggambarkan permintaan client. Bersama dengan programmer interface konkrit, ini menentukan platform-independent interface antara script dan HTTP server.
Server bertanggung jawab untuk mengelola koneksi, transfer data, transportasi, dan masalah jaringan yang terkait dengan permintaan klien, sedangkan skrip CGI menangani masalah aplikasi, seperti pemrosesan pand dokumen akses data.
\section{Persyaratan}
Suatu implementasi tidak sesuai jika gagal memenuhi satu atau lebih persyaratan untuk protokol yang diimplementasikannya. Suatu implementasi yang memenuhi semua keharusan dan semua persyaratan untuk fitur-fiturnya dikatakan tanpa syarat sesuai. Salah satu yang memenuhi semua persyaratan tetapi tidak semua persyaratan untuk fitur-fiturnya dikatakan bersyarat secara kondisional.
\section{Spesifikasi}
Tidak semua fungsi dan fitur CGI didefinisikan di bagian utama dari spesifikasi ini. Frase berikut digunakan untuk menggambarkan fitur yang tidak ditentukan.
Fitur ini mungkin berbeda antara sistem, tetapi harus sama untuk implementasi yang berbeda menggunakan sistem yang sama. Suatu sistem biasanya akan mengidentifikasi kelas sistem operasi. Beberapa sistem didefinisikan di bagian 7 dokumen ini. Sistem baru dapat ditentukan oleh spesifikasi baru tanpa revisi dokumen ini.
\section{Invoking the Script}
Tanggung Jawab Server
Server bertindak sebagai gateway aplikasi. Ia menerima permintaan dari klien, memilih skrip CGI untuk menangani permintaan, mengubah permintaan klien menjadi permintaan CGI, mengeksekusi skrip dan mengubah respon CGI menjadi respons untuk klien. Saat memproses permintaan klien, itu bertanggung jawab untuk mengimplementasikan protokol atau otentikasi dan keamanan tingkat transportasi. Server juga dapat berfungsi dengan cara yang tidak transparan, memodifikasi permintaan atau tanggapan untuk menyediakan beberapa layanan tambahan, seperti transformasi jenis media atau pengurangan protocol.
Server harus menerjemahkan dan mengkonversikan protocol di request data client yang dibutuhkan pada spesifikasi ini. Selanjutnya, server mempertahankan responsibilitynya kepada client untuk menyesuaikan dengan protocol network yang relevanbahkan ketika skrip CGI (Common Gateway Intrface) gagal menyesuaikan spesefikasi ini.
Jika server menerapkan authentication untuk permintaan, maka jangan jalankan skrip kecuali permintaan melewati yang telah ditentukan oleh access controls.
\section{Script Selection}
Server menentukan CGI mana yang akan dieksekusi berdasarkan URI bentuk generik yang disediakan oleh klien. URI ini mencakup jalur hierarkis dengan komponen yang dipisahkan oleh "/". Untuk setiap permintaan tertentu, server akan mengidentifikasi semua atau bagian utama dari jalur ini dengan skrip individu, sehingga menempatkan skrip pada titik tertentu dalam hierarki jalur. Sisa jalur, jika ada, pengidentifikasi sumber daya atau sub-sumber untuk ditafsirkan oleh skrip.
Informasi mengenai bagian ini teresedia untuk skrip dalam variabel-variabel meta,di deskripsikan di bawah.Support atau dukungan untuk non hirarki skema URI diluar ruang lingkup spesifikasi ini
\section{Script-URI}
Pemetaan dari URI yg di minta klien ke skrip yang dipilih, ditentukan oleh
implementasi server tertentu dan konfigurasinya.Server mungkin untuk mengijinkan script untuk di identifikasi dengan beberapa bagian URI hirarki yang berbeda,dan karna itu pula maka diizinkan untuk mengganti URI oleh anggota lain dalam satu set atau bagian selama pemrosesan variabel variabel meta.Server :
\begin{enumerate}
\item Mungkin untuk mempertahankan URI dalam permintaan atau request klien tertentu,atau
\item Memungkinkan untuk memilih URI Kanonis dari kumpulan kemungkinan nilai untuk setiap skrip,atau
\item Dapat mengimplementasikan pilihan URI lain dari set.
\end{enumerate}
Dari meta-variabel yang dihasilkan, sebuah URI, 'Script-URI', dapat
dibangun. Ini HARUS memiliki properti yang jika klien dapat
mengakses URI ini, maka skrip akan dieksekusi
dengan nilai yang sama untuk SCRIPT NAME, PATH INFO, dan QUERY STRING
meta-variabel. Script-URI memiliki struktur generic URI sebagai yang
didefinisikan dalam bagian 3 dari RFC 2396 [2], dengan pengecualian objek itu
parameter dan pengidentifikasi fragmen tidak diizinkan. Beragam
komponen dari Script-URI didefinisikan oleh beberapa
meta-variabel (lihat di bawah);

script-URI = <scheme> "://" <server-name> ":" <server-port>
<script-path> <extra-path> "?" <query-string>

dimana <scheme> didapatkan dari SERVER PROTOCOL, <server-name>,
<server-port> dan <query-string> adalah nilai dari masing-masing meta-variabel. The SCRIPT NAME dan nilai-nilai PATH INFO, URL-dikodekan dengan ";", "=" dan "?" reserved, diberikan <script-path> dan <extra-path>.

Skema dan protocol yang ada tidak identik karena skema mengidentifikasi metode akses selain protocol aplikasi.Sebagai contoh, sumber daya yang diakses menggunakan Transport Layer Security (TLS) akan memiliki permintaan URI dengan skema https ketika menggunakan HTTP protocol. CGI tidak menyediakan sarana generic kepada script untuk merekonstruksi ini, oleh karena itu Script-URI seperti yang didefinisikan meliputi protokol dasar yang digunakan. Tetpi, sebuah script memungkinkan dapat menggunakan skema khusus meta-variabel untuk lebih baik menyimpulkan skema URI.

Perhatikan bahwa definisi ini juga memungkinkan URI yang akan dikonstruksilah yang akan memanggil skrip dengan nilai yang diizinkan untuk info jalur/bagian atau query-string, dengan memodifikasi komponen yang sesuai
\section{Eksekusi}
Skrip ini dijalankan dengan cara yang ditentukan system.
Kecuali jika tidak ditentukan , file yang berisi skrip akan dipanggil sebagai program yang dapat dijalankan
Server menyiapkan permintaan CGI seperti yang akan dijelaskan di bagian 4. Skrip ini terdiri dari permintaan meta-variabel yang telah tersedia untuk skrip pada eksekusi dan permintaan data pesan. Data permintaan tidak perlu segera tersedia untuk skrip karena skrip dapat dijalankan sebelum semua data ini telah diterima oleh server dari klien.
(meta-variabel digunakan dalam pemrograman untuk menggambarkan variabel atau objek yang bisa berubah. Nama tersebut sering tidak memiliki makna langsung tetapi tersedia untuk memiliki sesuatu yang spesifik untuk dirujuk).
Tanggapan dari skrip dikembalikan ke server seperti yang dijelaskan di bagian 5 dan 6. Jika terjadi kondisi kesalahan, server dapat mengganggu atau menghentikan eksekusi skrip kapan saja dan tanpa peringatan. Itu bisa saja terjadi, misalnya, jika terjadi kegagalan transportasi antara server dan klien: jadi skrip HARUS siap untuk menangani penghentian yang tidak normal.
\section{CGI Request}
Informasi tentang permintaan berasal dari dua sumber yang berbeda: yaitu permintaan meta-variabel dan setiap pesan-body yang terkait.

\section{Request Meta-Variables}
Meta-variabel berisi data tentang permintaan yang dikirimkan dari server ke skrip, dan diakses oleh skrip dengan cara yang ditentukan sistem. Meta-variabel diidentifikasi oleh nama-nama yang tidak sensitif huruf: tidak boleh ada dua variabel yang berbeda yang namanya berbeda hanya dalam kasus saja.
Di sini meta variable ditampilkan menggunakan representasi kanonik huruf besar dan garis bawah. Suatu sistem tertentu dapat mendefinisikan suatu representasi berbeda.

meta-variable-name = "AUTH TYPE" | "CONTENT LENGTH" |
"CONTENT TYPE" | "GATEWAY INTERFACE" |
"PATH INFO" | "PATH TRANSLATED" |
"QUERY STRING" | "REMOTE ADDR" |
"REMOTE HOST" | "REMOTE IDENT" |
"REMOTE USER" | "REQUEST METHOD" |
"SCRIPT NAME" | "SERVER NAME" |
"SERVER PORT" | "SERVER PROTOCOL" |
"SERVER SOFTWARE" | scheme |
protocol-var-name | extension-var-name
protocol-var-name = ( protocol | scheme ) var-name
scheme = alpha *( alpha | digit | "+" | "-" | "." )
var-name = token
extension-var-name = token
meta variabel dengan nama yang sama dengan skema,dan nama yang diawali dengan nama protokol atau skema (misalnya, HTTP ACCEPT) juga didefinisikan. Jumlah dan makna dari variabel-variabel ini dapat berubah secara independen dari spesifikasi ini. Server dapat menetapkan tambahan ekstensi meta variabel implementasi,yang namanya harus diawali dengan "X". Spesifikasi ini tidak membedakan antara nilai nilai nol panjang (NULL) dan nilai nilai yang hilang. Sebagai contoh, sebuah skrip tidak dapat membedakan antara dua permintaan http://host/skrip dan http://host/skrip? seperti pada kedua kasus, meta variabel QUERY STRING akan menjadi NULL.
meta variable-value = "" *<TEXT, CHAR or tokens of value>
Sebuah meta variabel opsional dapat dihilangkan (tidak disetel) jika nilainya adalah NULL. Nilai meta-variabel HARUS dianggap case-sensitive kecuali seperti yang dinyatakan sebaliknya. Representasi dari karakter dalam meta variabel ditentukan system; server HARUS mengkonversi nilai ke representasi tersebut.
\section{Request Message-Body}
Permintaan data diakses oleh skrip dalam metode yang didefinisikan oleh system; kecuali sudah ditentukan, hal ini akan membuat system membaca request/permintaan dengan ‘standar masukan’ pendeskripsi file.
Request-Data = [ request-body ] [ extension-data ]
request-body = <CONTENT LENGTH>OCTET
extension-data = *OCTET.
request body disertaikan dengan permintaan jika CONTENT LENGTH tersebut not NULL. Server harus membuat setidaknya banyak byte yang tersedia untuk membaca script. Server mungkin menandakan kondisi end of file. CONTENT LENGTH byte telah dibaca atau mungkin menyediakan extention date. Oleh karena itu, script tidak harus mencoba untuk membaca lebih lanjut dari CONTENT LENGTH byte, bahkan jika lebih banyak data tersedia. Namun, tidak wajib membaca data apa pun.
Untuk skrip non-parsed header (NPH)(Bagian 5), server HARUS berusaha untuk memastikan bahwa data yang diberikan ke skrip adalah tepat seperti yang disediakan oleh klien dan tidak diubah oleh server.
Seperti transfer-codings tidak didukung pada request-body, server HARUS menghapus setiap pengkodean tersebut dari message-body, dan mengatur ulang CONTENT-LENGTH. Jika hal ini tidak mungkin (misalnya, karena persyaratan buffering besar), server HARUS menolak permintaan klien. Hal ini MUNGKIN dapat menghapus content-codings dari message-body.
\section{Request Methods}
Sebagaimana disediakan dalam meta variabel REQUEST METHOD, mengidentifikasi metode pemrosesan yang akan diterapkan pada skrip dalam menghasilkan respons. Penulis skrip dapat memilih untuk menerapkan metode yang paling sesuai untuk aplikasi tertentu. Jika skrip menerima permintaan dengan metode yang tidak mendukungnya harus menolaknya dengan kesalahan.
\section{GET}
Metode GET menunjukkan bahwa skrip harus menghasilkan dokumen berdasarkan nilai nilai meta variabel. Dengan konvensi, metode GET adalah 'aman' dan 'idempoten' dan seharusnya tidak memiliki arti penting mengambil tindakan selain menghasilkan dokumen.
Arti metode GET dapat dimodifikasi dan disempurnakan oleh variabel-variabel khusus protokol.
\section{POST}
Metode POST digunakan untuk meminta skrip melakukan pemrosesan dan menghasilkan dokumen berdasarkan data di dalam isi permintaan pesan, selain nilai-nilai meta-variabel. Penggunaan umum adalah penyerahan formulir dalam HTML, yang dimaksudkan untuk memulai pemrosesan oleh skrip yang memiliki pengaruh permanen, seperti perubahan dalam basis data.
Skrip HARUS memeriksa nilai variabel CONTENT LENGTH sebelum membaca badan pesan terlampir, dan HARUS memeriksa nilai CONTENT TYPE sebelum memprosesnya.
\section{HEAD}
Method Head meminta skrip untuk melakukan pemrosesan yang memadai atau cukup untuk mereturn atau mengembalikan respon pada bagian header,tanpa memberikan isi pesan respon.Script tidak harus menyediakan isi pesan respon untuk HEAD resquest.Jika sampai isi pesan respon diberikan,maka server harus membuang isi pesan tersebut saat membaca respon yang diberikan oleh script.
\section{Protocol-Specific-Methods}
Script mungkin saja mengimplementasikan metode protocol specific apapun,seperti HTTP/1.1 PUT dan DELETE; metode protocol tersebut nanti nya harus mengecek nilai dari server protocol saat diimplementasikan
Server mungkin untuk menentukan atau memutuskan beberapa metode tidak sesuai/tidak diizinkan untuk script,dan mungkin untuk meng handale metode itu sendiri atau mengembalikan pesan error untuk client.
\section{The Script Command Line}
Beberapa system mendukung penggunaan metode untuk menyediakan array untuk string string yang nantinya akan dipakai oleh script CGI. Hal ini hanya digunakan dalam suatu kasus query HTTP ‘indexed’. Yang mana pada query HTTP ‘indexed’ dapat diidentifikasi oleh permintaan ‘GET’ atau ‘HEAD’ dengan query string URI yang tidak mengandung unencoded karakter “=”. Untuk permintaan seperti itu, pada bagian server harus memperlakukan query-string sebagai search-string dan mengurai kedalam kata–kata, dengan menggunakan aturan-aturannya.
search-string = search-word *( "+" search-word )
\begin{enumerate}
\item search-word = 1*schar
\item schar = unreserved | escaped | xreserved
\end{enumerate}
Setelah parsing, setiap kata pencarian adalah URL-decoded, opsional dikodekan dengan cara yang ditentukan sistem dan kemudian ditambahkan ke daftar argumen baris perintah.
Jika server tidak dapat membuat bagian apa pun dari daftar argumen, maka server tidak harus menghasilkan informasi baris perintah apa pun. Sebagai contoh, jumlah argument yang mungkin lebih besar daripada system operasi atau server yang terbatas, atau salah satu dari kata-kata mungkin tidak dapat diwakilkan sebagai argumen.
Skrip HARUS memeriksa untuk melihat apakah nilai QUERY-STRING yang dikodekan tidak berisi karakter “=”, dan TIDAK HARUS menggunakan baris perintah argumen jika itu terjadi.
\section{NPH Scripts}
\section{Identification}
Server MAY mendukung skrip NPH (Non-Parsed Header). Skrip ini merupakan skrip dimana server meloloskan semua tanggung jawab untuk pemrosesan respons.
Spesifikasi ini tidak menyediakan mekanisme untuk skrip NPH untuk diidentifikasi berdasarkan data outputnya saja. Oleh karena itu, konvensi, setiap skrip tertentu hanya dapat menyediakan keluaran satu jenis (NPH atau CGI) dan karenanya skrip itu sendiri digambarkan sebagai 'skrip NPH'.
\end{document}
Loading