티스토리 뷰

📕 제 2장 웹 프로그래밍 기초 다지기

1-5. HTTP 클라이언트 만들기

package lesson02.client;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.Socket;

public class SimpleHttpClient {

	public static void main(String[] args) throws Exception {
		// 1. 소켓 및 입출력 스트림 준비
		Socket socket = new Socket("www.daum.net", 80);
		BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
		PrintStream out = new PrintStream(socket.getOutputStream());
 
		//2. 요청라인 출력 
		out.println("GET / HTTP/1.1");

		//3. 헤더정보 출력 
		out.println("Host: www.daum.net");
		out.println("User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0)"
				+ " AppleWebKit/537.36 (KHTML, like Gecko)"
				+ " Chrome/30.0.1599.101 Safari/537.36");

		//4. 공백라인
		out.println();
	
		//5. 응답 내용 출력
		String line = null;
		while((line = in.readLine()) != null) {
			System.out.println(line);
		}

		// close()
		in.close();
		out.close();
		socket.close();
	}
}

1) 소켓 및 입출력 스트림 준비

    - 접속할 웹 서버는 Daum이고, 웹 서버의 기본 포트인 80을 사용한다

    - 그리고 소켓으로 입출력을 하기 위한 객체를 준비한다

2) 요청 라인 출력

    - 서버에게 수행할 작업을 알려주는 요청 라인을 보낸다

    - 요청의 형식은 GET을 사용한다

    - 원하는 자원은 웹 서버 루트 폴더에 있는 기본 문서(/)

    - HTTP 프로토콜 1.1 버전을 사용한다

3) 헤더 정보 출력

    - 웹 서버에 부가 정보를 보낸다

    - 접속하려는 웹 서버의 주소, 요청자의 정보는 크롬 브라우저로 설정한다

    - Daum 웹 서버는 Host, User-Agent 만으로도 정상 응답한다

4) 공백 라인 : 요청의 끝을 표시하기 위한 공백 라인

5) 응답 내용 출력 : 서버로부터 받아온 데이터를 라인 단위로 읽고 출력한다

 

 

[참고] 프로토콜의 종류

 

 

'BackEnd > JAVA' 카테고리의 다른 글

[Ch02] 3. POST 요청  (0) 2021.12.10
[Ch02] 2. GET 요청  (0) 2021.12.10
[Ch02] 1-4. HTTP 응답  (0) 2021.12.10
[Ch02] 1-3. HTTP 요청  (0) 2021.12.10
[Ch02] 1-2. HTTP 모니터링  (0) 2021.12.10
댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday