티스토리 뷰
📕 제 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 |
댓글