Client
: 서비스를 요청해서 사용하는 컴퓨터
Server
: 여러 명의 사용자들에게 서비스를 제공하는 컴퓨터
미리 정의된 프로토콜을 사용하여 통신함!
종류
- 웹 서버
웹 서버 : WWW에서 서비스를 제공 / 웹에서 데이터를 주고받을 때 사용
클라이언트 : 웹 브라우저
프로토콜 : HTTP(Hypertext Transfer Protocol)
- 이메일 서버
메일 서버
클라이언트 : 이메일 프로그램
프로토콜 : SMTP(Simple Mail Transfer Protocol)
- DNS 서버
DNS 서버 : 도메인을 IP 주소로 변환해주는 서버
클라이언트 : 웹 브라우저
프로토콜 : DNS(Domain Name System)
프로토콜 더 알아보기
- TCP/IP (Transmission Control Protocol/Internet Protocol)
인터넷에서 데이터를 전송하기 위해 사용되는 프로토콜의 집합
TCP : 신뢰성 있는 데이터 전송을 담당
IP : 데이터의 패킷화와 라우팅을 담당
대부분의 인터넷 통신은 TCP/IP 프로토콜을 기반으로 이루어짐
- FTP (File Transfer Protocol)
파일 전송을 위해 사용
주로 웹 사이트의 파일 업로드 및 다운로드에 사용
- POP3 (Post Office Protocol version 3)
이메일 수신을 위해 사용
- IMAP (Internet Message Access Protocol)
이메일 수신 및 관리를 위해 사용
POP3와 달리 이메일 서버에 있는 이메일을 클라이언트와 동기화하여 관리 가능
- DHCP (Dynamic Host Configuration Protocol)
네트워크에서 IP 주소 및 기타 네트워크 구성 정보를 동적으로 할당하는 데 사용
컴퓨터나 기기가 네트워크에 연결될 때 자동으로 IP 주소를 할당해 줌
- SSH (Secure Shell)
원격 컴퓨터에 안전하게 접속하기 위해 사용
암호화된 터미널 세션을 제공하여 데이터의 보안을 유지
IP 주소
IP : 네트워크에 존재하는 컴퓨터를 유일하게 식별하는 숫자
- IPv4 : 32 bit
- IPv6 : 128 bit / 폭발적으로 늘어나는 인터넷 사용에 대비하기 위해 만들어짐
자기 컴퓨터의 IP 주소 확인 방법 : CMD창 > ipconfig
호스트 이름
: 네트워크 상에서 컴퓨터의 이름
표준인 DNS를 사용해서 생성되어 인간에게 친근한 문자열을 사용해서 이름을 지음
모든 컴퓨터는 자기 자신을 가리키는 특별한 호스트 이름과 IP주소를 가지고 있음
호스트 이름 : localhost
IP 주소 : 127.0.0.1
URL(Uniform Resource Locater)
: 자원의 위치를 나타내기 위한 규약
인터넷 상의 파일이나 데이터베이스 같은 자원에 대한 주소를 지정
** 자원 : 대개 파일, 인터넷은 거대한 하나의 파일 시스템
인터넷에서 웹 페이지를 볼 때 웹 브라우저의 주소 칸에 적는 값
구성 : 자원에 접근할 때 사용하는 프로토콜, 자원의 이름으로 구성
표시 방법 : 호스트 이름에 파일의 경로를 붙여서 표시
자원의 이름 : 호스트 이름, 파일 이름, 포트 번호, 참조 등의 필드로 구성
호스트 이름, 파일 이름은 필수이고 나머지는 생략 가능
package ex17; import java.net.InetAddress; import java.net.UnknownHostException; public class host2ip { public static void main(String[] args) { String hostname = "www.naver.com"; try { InetAddress address = InetAddress.getByName(hostname); System.out.println("IP주소: " + address.getHostAddress()); } catch (UnknownHostException e) { System.out.println(hostname + "의 IP 주소를 찾을 수 없습니다."); } } }
인터넷에서 파일 다운로드
package ex17; import java.io.*; import java.net.*; public class URLConnectionReader { public static void main(String[] args) throws IOException { URL site = new URL("http://naver.com/"); URLConnection url = site.openConnection(); BufferedReader in = new BufferedReader( new InputStreamReader(url.getInputStream()) ); String inLine; while ((inLine = in.readLine()) != null) { System.out.println(inLine); } in.close(); } }
네트워크에서 데이터를 읽는 방법 : 스트림을 네트워크에 연결해서 읽기
- URL 클래스의 객체 생성
java.net : 네트워크 프로그래밍을 위한 패키지
java.net.URL : 프로그램과 인터넷 상의 원격 컴퓨터에 자원을 연결하는 클래스
URL 생성자를 호출하면서 사이트의 주소를 전달
URL이 만들어지면 그 내용을 수정할 수 없음
- URLConnection 객체를 생성
URL 객체를 이용해서 연결하기 위함
- URLConnection 객체의 getInputStream() 호출
- Stream에서 데이터 읽기
Share article