You will be fine

<Socket> 3. Network Programming 정리

by BFine
반응형

Network Programming

1.1 서버 클라이언트 모델

  • 두 대상 간에 맺어진 역할로 네트워크 모델을 다룬다. (요청-응답 모델)
  • 웹서비스는 대표적인 서버 클라이언트 모델이고 클라이언트는 URL로 요청, 서버는 웹페이지단위로 응답하는 구조

1.2 프로토콜

  • 네트워크상 두 종점 간의 데이터 통신을 정확하고 효율적으로 수행하기 위한 약속 이다.
  • OSI는 프로토콜을 계층적으로 구성하여 프로토콜을 독립적으로 설계하기 때문에 유지보수가 편리 하다.

1.3 IP주소

  • 자바는 IP 주소를 다룰 수 있게 InetAddress 클래스를 제공한다.(이 클래스는 생성자가 없다.)
InetAddress inetAddress = InetAddress.getLocalHost();
System.out.println(inetAddress);
inetAddress = inetAddress.getByName("www.google.com");
System.out.println(inetAddress);
// host이름/주소 형태로 출력된다.

1.4 포트번호

  • 다른 네트워크에서 메세지가 컴퓨터에 전송됬을때 보내야하는 특정 프로세스를 지정 하려는 목적으로 사용한다.
  • IP주소 는 컴퓨터를 찾을때 필요한 주소이고, 포트번호 는 프로세스 찾을때 필요한 번호이다.
  • well-known 포트는 0~1023까지 정해져 있다.

1.5 URL

  • Uniform Resource Locator 는 인터넷에서 서버 내 자원의 위치를 나타내고자 사용하는 표준적인 논리주소이다.
  • 다양한 서비스를 제공하는 서버로부터 필요한 데이터를 가져오려면 이들의 위치를 표시하는 체계 가 필요한데 이것이 URL이다.
  • URL은 서비스 종류,도메인네임,파일의 위치를 포함한다. [프로토콜://컴퓨터명(IP주소)/디렉터리명/파일명]
  • 흔히 URL은 웹사이트주소로 알고 있지만 컴퓨터와 네트워크의 자원을 모두 나타낼 수 있다.
  • 해당 주소에 연결하려면 맞는 프로토콜을 연결해야한다.(http->브라우저, Ftp->Ftp클라이언트)
URL url = new URL("https://www.naver.com");
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String contents;
while((contents=br.readLine())!=null){
   System.out.println(br.readLine());
}
br.close();
// 웹사이트 소스보기 한 것과 같은 내용이 출력된다.

1.5.2 URLE/Dncoder, URLConnetion

  • URLEncoder는 데이터를 웹서버에서 요구하는 자료형(MIME) 으로 변환하는 역할을 한다.
    • 아스키문자 & . & - 등은 그대로 전달
    • 공백은 +로 전달
    • 기타문자는 %OO형태(아스키코드를 16진수로 나타낸것)로 전달
  • URLConnetion은 URL을 이용해 참조자원을 읽고 쓰는 작업을 한다. (URL 단순 참조)
  • 응용프로그램과 URL간의 통신링크 작업을 하며 URL에 데이터쓰기를 가능하게 해준다.

출처

반응형

'공부(2018~2019) - 스킨변경전 > Socket' 카테고리의 다른 글

<Socket> 5. WebSocket 정리  (2) 2019.05.21
<Socket> 4. Socket Programming 정리  (0) 2019.05.14
<Socket> 2. I/O Stream 정리  (0) 2019.05.07
<Socket> 1. Thread 정리  (0) 2019.05.05

블로그의 정보

57개월 BackEnd

BFine

활동하기