Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
Bu makalenin farkl� dillerde bulundu�u adresler: English  Castellano  Deutsch  Francais  Italiano  Nederlands  Russian  Turkce  

[Photo de 
l'auteur]
by Charles vidal

Yazar Hakk�nda:

Chairman of a gastronomical lug in Paris. Yazar, A��k Kod sisteminin ve GNU'nun ard�ndaki felsefeyi benimsemi�tir, ��nk� bu felsefe bilgi payla��m�na yard�mc� olmaktad�r. Yazar ayr�ca bo� zamanlar�nda saksafon �almaktan ho�lan�r.

��erik:

Apache b�l�m I

�eviri : Kaan Erdemir

[Illustration]

�zet:

Bu makale en �ok kullan�lan web sunucusu olan Apache hakk�nda olup iki b�l�m olarak haz�rlanm�� t�m anlat�m�n ilk k�sm�d�r. Bu b�l�mde, WWW 'nin k�sa bir tarihini tan�mlarken ikinci b�l�mde HTTP protokol�ne bir giri� yapaca��m.



 

Tarih

HTTP istemci ve sunucusu fikri ilk olarak CERN(Centre Européen de Recherche Nucléaire) �al��anlar� taraf�ndan geli�tirildi.
CERN �al��anlar� �ncelikle projenin ara�t�rma g�revini tamamlad�lar ve onu Amerikan �niversitesi(NSCA)' ne devrettiler.
Tahminimce, bir�ok insan i�in Avrupa'l�lar (bilhassa Frans�z'lar) taraf�ndan yarat�lan WWW'nin temellerini g�rmek etkileyici olmal�.

Apache, bu �cretsiz WEB sunucusu projesinin ismidir. Apache ismi hafif bir tart��man�n ortas�nda kalm��t�r. Baz�lar� ismin "a patchy server" 'dan geldi�ini iddia ederler ��nk� ba�lang��ta say�s�z yama(patch)dan olu�turulmu�tur (yine bir hacker takti�i :) ). Di�er bir kesim ise duruma daha ciddi bir hava ile yakla�maktad�r. Bu kesime g�re proje ismi Apache kabilesinden esinlenerek yarat�lm��t�r. Her durumda ortama y�ksek uyum g�c�ne sahip bir kabile!
Apache �u anda internette en �ok kulan�lan WEB sunucusudur. O, consortium w3 taraf�ndan standartla�t�r�lan HTTP protocol (1.1) 'e uyumludur.
1999 'da yap�lan bir Net sunucular� ara�t�rmas�, Apache WEB sunucusunun t�m sunucular i�inde %60,05 lik bir kullan�m pay�na sahip oldu�unu g�stermektedir.
Bir WEB sunucusu sunucu-istemci (anatar-kilit gibi) ikilisinin "sunucu" taraf�n� olu�turur. Bir sunucu "WEB istemcileri" 'den gelen istemlere yan�t verir. �rene�in, lynx WEB gezginlerinde oldu�u gibi :-).  

HTTP protokol�

Sunucu ve istemci birbirleri ile HTTP protokol� (Hypertext Transfer Protocol) 'n� kullanarak ileti�im kurar. Bu protok�l�n bu g�nk� son s�r�m� HTTP 1.1 as specified in RFC 2616 adresinden elde edilir.
Bu protokol iki b�l�me ayr�lm��t�r : istemcinin istemleri ve sunucunun cevaplar�. Protokol ASCII (American Standart Code For Information Interchange) tabanl�d�r.
  1. �stem :

  2. �� par�aya ayr�lm�� bir sat�rl�k yaz�d�r :

    1. [istem tipi]
    2. [URL]
    3. [Kullan�lan protokol]
    Bu basit yaz� sat�r�n� di�er �zel istem sat�rlar� takip edebilir.

  3. Cevap :

  4. Cevap istem tipine ba�l� olarak bir g�vde ve bir ba�l�k k�s�mlar� olmak �zere olu�turulur.
    
    	    >telnet www.linuxfocus.org 80
    
    	    Trying 213.239.9.21...
    
    	    Connected to nova.linuxfocus.org.
    
    	    Escape character is '^]'.
    
    	    GET / HTTP/1.0 <return>
    
    	    <return>
    
    	    HTTP/1.1 200 OK
    
    	    Date: Mon, 27 Sep 1999 21:23:20 GMT
    
    	    Server: Apache/1.3.3 (Unix)  (Red Hat/Linux)
    
    	    Last-Modified: Sun, 26 Sep 1999 16:40:44 GMT
    
    	    ETag: "4b005-1616-37ee4c8c"
    
    	    Accept-Ranges: bytes
    
    	    Content-Length: 5654
    
    	    Connection: close
    
    	    Content-Type: text/html
    
    	    <PAGE HTML>
    
    	    

    Bu cevap ne diyor?
    Telnet ile ba�lanma i�lemi tamamland�ktan sonra "GET / HTTP/1.0" istemine cevap verilmeye ba�lan�yor. �lk sat�r (HTTP/1.1 200 OK) kullan�lan protokol� ve sunucunun d�n�� de�erini g�steriyor (d�n�� de�erinin 400 den b�y�k olmas� bir hata oldu�una i�aret eder). Bu sat�r� tarih, sunucunun s�r�m numaras� , URL �zerinde yap�lan son de�i�ikli�in tarihi (ki bu tarih istemcinin URL 'de yer alan dosyalar�n zaten onun cache(gizli saklama b�lgesi) inde yer al�p almad���n� bilmesini sa�lar). "Content-Length" ifadesi g�nderilen cevab�n uzunlu�unu belirtir (benzer �ekilde bir CGI (Common Gateway Interface) beti�ine yap�lacak istemden al�nacak cevap b�yle bir ifade i�ermez) ve son olarak "Content-Type" ifadesi istemciye cevap verilirken kullan�lan MIME tipini g�sterir (text, html, images ...).

    Bu tam olarak bir a��klama say�lmaz. Baz� sat�rlar hala bende gizli kald� ;-)
    �imdi de bir hata durumunda neler olaca��na bakal�m :
    
    	>telnet www.linuxfocus.org 80
    
    	Trying 213.239.9.21...
    
    	Connected to nova.linuxfocus.org.
    
    	Escape character is '^]'.
    
    	get / HTTP/1.0 <return>
    
    	<return>
    
    	HTTP/1.1 501 Method Not Implemented
    
    	Date: Mon, 27 Sep 1999 21:22:03 GMT
    
    	Server: Apache/1.3.3 (Unix)  (Red Hat/Linux)
    
    	Allow: GET, HEAD, OPTIONS, TRACE
    
    	Connection: close
    
    	Content-Type: text/html
    
    	

    G�rd���n�z gibi, ba�l�k "HTTP/1.1 501 Method Not Implemented (HTTP/1.1 metodu yerine getirilemedi)" diyerek durumu yeterince a��klad� zaten ;-)
    HTTP -bu �rnekte de g�rd���m�z gibi- ger�ekten �ok basit bir protokold�r.
    
    	>telnet www.linuxfocus.org 80
    
    	Trying 213.239.9.21...
    
    	Connected to nova.linuxfocus.org.
    
    	Escape character is '^]'.
    
    	GET / < return >
    
    	      < return >
    
    	
    [www.linuxfocus.org 'dan gelecek olan index.html 'nin i�eri�i bu sat�rlar�n ard�ndan g�r�nt�lenecek]..

    Apache sunucusunun i�inde neler oluyor ?
    Telnet komutunu kullanarak www.linuxfocus.org (IP adresi 195.53.25.1) 'a 80. port(giri� kap�s� diyebiliriz herhalde :) ) 'undan ba�land�ktan sonra (port 80 http sunucular i�in standart port kabul edilir) sunucu her hangi bir istem i�in beklemeye ge�er. GET/ komutu ile beraber iki return(devam-enter) i�areti verirsiniz.
    Neden iki return(devam) i�areti ?
    �lk return i�aretinden sonra verilen son return i�areti sunucuya bo� bir sat�r g�nderir. Sunucu bo� sat�r� g�rd���nde istemin tamamland���n� anlar. Sunucu isteme istek dosyas� (index.html) ile cevap verir. TCP/IP ba�lant�s� istek dosyas�n� transferinden hemen sonra kapat�lacakt�r.

    G�rd���n�z gibi, istemci ve sunucu aras�nda kullan�lan dil ger�ekten �ok basittir ancak HTTP/1.0 s�r�m� yerine HTTP/1.1 s�r�m�n� kulland���n�zda isteminiz i�in zorluk biraz artacakt�r.

    
    GET / HTTP/1.0< return >
    
    < return >
    
    HTTP/1.1 200 OK
    
    Date: Tue, 24 Aug 1999 22:25:11 GMT
    
    Server: Apache/1.3.3 (Unix)  (Red Hat/Linux)
    
    Last-Modified: Sun, 01 Aug 1999 11:50:52 GMT
    
    ETag: "4b005-1462-37a4349c"
    
    Accept-Ranges: bytes
    
    Content-Length: 5218
    
    Connection: close
    
    Content-Type: text/html
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    ....
    
    
    fakat 1.1 'i kullanmak �u sonu�lar� verir :
    GET / HTTP/1.1 <return >
    
    < return >
    
    HTTP/1.1 400 Bad Request
    
    Date: Tue, 24 Aug 1999 22:24:59 GMT
    
    Server: Apache/1.3.3 (Unix)  (Red Hat/Linux)
    
    Connection: close
    
    Transfer-Encoding: chunked
    
    Content-Type: text/html
    
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    
    <HTML><HEAD>
    
    <TITLE>400 Bad Request</TITLE>
    
    </HEADBODY>
    
    <H1>Bad Request</H1>
    
    Your browser sent a request that
    
    this server could not understand.<P>
    
    client sent HTTP/1.1 request without hostname (see RFC2068 section 9, 
    and 14.23): </P>
    
    </BODY></HTML>
    
    
    Yeni HTTP/1.1 protokol�n� kullanmak daha fazla bilgi alan� kullan�lmas�n� gerektirir. Bu protokol bir�ok sat�r �zerinden yap�land�r�lmaktad�r. Bu ilave sat�rlar daha kesin bilgiler iletilmesini sa�larken di�er yandan ileti�imin kalitesini y�kseltir.
    ��te bu protokol�n 1.1 s�r�m�d�r. Apache tak�m� titizlikle daha fazla fonksiyonellik sa�layacak yeni �zellikler pe�indedir. Belgeleme, sanal siteler (ayn� IP adresini payla�an siteler) ve bir�oklar� gibi...

    �rnek :

    
    GET / HTTP/1.0< return >
    
    Host:www.linuxfocus.org< return >
    
    < return >
    
    [...]
    
    
    Bu durum bir�ok istemci-sunucu �iftinde sorunsuz i�lemektedir. Sunucu istemi cevaplarken :  

    Fonksiyonellik

    Ana prensip bir WEB sunucusunun istemciye yaln�zca cevap g�ndermesidir. �stemci istemine kar��l�k yaln�zca cevap g�rmelidir.

    WEB sunucusu WEB istemcisi ile sorgulanan URL (Uniform Request Locator) aras�nda bir aray�zd�r - bu �zet tabiki sunucunun yaln�zca URL i�in kullan�labilece�i anlam�na gelmez. Ayr�ca sunucu URI, URN bulmak i�inde kullan�labilir. Asl�nda basit�e hepsi ayn� �eylerdir - ve Apache sunucusu i�letim sistemi �zerinde �al��maktad�r.. WEB istemcisi kendi istemlerini g�nderir ve sunucuda isteme sunulabilecek uygun bir URL ile cevap verir.

    �stemci taraf�ndan g�nderilen baz� istemler baz� durumlarda direkt olarak sunucu taraf�ndan cevaplanmaz. Sunucu istemi bir di�er programa aktarabilir ve program�n d�nd�rd��� d�n�� de�erini istemciye cevap olarak iletebilir. Bu duruma CGI betikleri �rnek olarak g�sterilebilir.

     

    Sonu�

    Apache 'nin nas�l �al��t���n� anlayabilmek i�in basit�e ba�ka bir HTTP sunucusuna telnet ile ba�lant� yap�n. Bu yolla sunucunun d�nd�rd��� cevaptan sitenin kulland��� sunucunun ismini g�rebilirsiniz.  

    Bu makale i�in g�r�� bildirme formu

    Her makale bir g�r�� bildirme sayfas�na sahiptir. Bu sayfa ile kendi yorumlar�n�z� iletebilece�iniz gibi di�er okuyucular�n yorumlar�na da ula�abilirsiniz :
     G�r�� bildirme sayfas� 

    Bu WEB sayfalar� LinuxFocus Edit�r Tak�m� taraf�ndan haz�rlanmaktad�r.
    © Charles vidal
    LinuxFocus.org 2000

    Linuxfocus 'a hata bildirmek yada bir yorum g�ndermek i�in buraya t�klay�n�z
    �eviri bilgisi:
    fr -> -- Charles vidal
    fr -> en Frédéric Raynal
    fr -> en Alexandre Abbes

    2000-05-01, generated by lfparser version 1.5