PHP 개발자라면 알아야할 인터넷 상식
1. 인터넷의 시작
예전에 미국에서 군사적인 목적으로 컴퓨터를 연결하기 시작했는데 그것이 점점 퍼져 전세계 인터넷이 되었다.
2. ip Address
컴퓨터끼리 연결하다 보니 컴퓨터마다 주소가 필요했다. 그것이 ip address. 컴퓨터의 주소이고 전화번호 같은 거라고 생각하면 된다. 인터넷에 연결된 컴퓨터는 모두 고유한 ip address를 갖고 있다.
0.0.0.0 ~ 255.255.255.255 사이의 주소로 되어 있다. tisotry.com 서버의 ip 주소는 121.53.105.234 이다. 네이버의 ip주소는 125.209.222.142 이다.(네이버는 ip 주소가 한개가 아니다.)
3. 도메인, DNS 서버, 네임서버
처음 몇대 밖에 없을때는 숫자로 했지만 점점 늘어나니 사람이 숫자를 외우는것이 무척 어려웠다. 그래서 나온게 도메인이다. 우리가 흔히 보는 naver.com, tistory.com 등이다.
우리가 브라우저에 naver.com이라고 치면 네임서버가 ip를 알려준다. 그걸 네임서버라고 한다. 대표적인 네임서버는 kt 네임서버인 168.126.63.1이 있다.
네임서버에 정보가 없는 도메인을 입력했다고 하면 전세계 모든 도메인 주소의 정보를 가지고 있는 루트서버에서 정보를 가져온다. 루트서버는 전세계에 몇대 없다. 그중 하나가 일본에 있다. 10년전엔 그랬는데 지금은 우리나라에도 있는지 모르겠다.
4. 웹, ftp, 텔넷, 디비
도메인을 알아서 상대방 컴퓨터에 접속을 한다면 접속하는 컴퓨터를 클라이언트, 접속한 컴퓨터를 서버라고 한다. 서버는 여러가지 서비스를 제공할 수 있는데 대표적인 것이 웹서버, ftp 서버, Telnet 서버, 디비서버이다.
5. 포트
하나의 컴퓨터에서 위와같이 여러개의 서비스를 가능하게 해 주는것이 포트 덕분이다. 포트란 컴퓨터에 있는 여러개의 출입문이다. 아파트의 호수라고 보면 된다. 0부터 65535까지의 숫자이다.
클라이언트가 브라우저로 접속했다면 웹서버에 접근한것이라고 보고 80포트로 들어간다. telnet으로 들어오면 23, ftp는 21, 디비서버는 3306(mysql 기준)의 포트를 사용한다.(이 포트는 디폴트값이고 바뀔수도 있다.)
6. 웹서버(WAS , 아파치, 톰캣)
만약 클라이언트가 브라우저를 통해 접속했다면 80포트로 들어온다. 웹서버는 그것을 감지해 웹서버를 가동시킨다. 이때 사용하는 웹서버에는 여러가지가 있는데 대표적인게 아파치(Apache)와 톰캣(Tomcat)이다.
보통 PHP는 아파치를 쓰고 자바는 톰캣을 쓴다.(절대적인것은 아님)
아파치는 80포트로 들어온 신호를 받아서 이 클라이언트가 어디로 가야하는지 그리고 접속하는 페이지를 해석해서(PHP등으로) 클라이언트에게 보여준다. 그러면 클라이언트는 브라우저를 통해 그것을 보게 될 것이다.