반응형
블로그 목적
HttpServer을 활용한 간단한 Mock 서버 구축에 대한 공부및 정리후 나만의 노하우와 지식을 공유한다.
블로그 요약
1. HttpServer 에 대해서 알아본다.
2. HttpServer 을 통해서 Mock 서버를 구축해본다.
블로그 상세내용
HttpServer 란?
![](https://blog.kakaocdn.net/dn/b79zkR/btrL3E4tyaU/FmdCTP65HEl0AiIwxCB3E1/img.png)
JAVA api 문서를 확인해보니 아래와 같이 설명하고 있습니다. (개인적으로 잘 정리해두시고요...)
This class implements a simple HTTP server. A HttpServer is bound to an IP address and port number and listens for incoming TCP connections from clients on this address. The sub-class HttpsServer implements a server which handles HTTPS requests.
(한마디로 단순한 HTTP 서버를 구현하기 위한 클래쓰!!)
주요 메소드를 확인해보니 아래와 같았다.
![](https://blog.kakaocdn.net/dn/c5jmER/btrL4lQSPcl/ILgfiraYFg4Xdqm4rBQTK0/img.png)
한번 쭈우욱 읽어보시면 좋을것 같고요...
그중에 머릿속에 넣어둘 메소드는 아래와 같은데요..
(말그대로 소켓생성및 포트를 바인드하기위한 용도죠...)
![](https://blog.kakaocdn.net/dn/bkAzP8/btrL2onsO5a/AU8X7uBqm3T33djCCCTnK0/img.png)
![](https://blog.kakaocdn.net/dn/ct4Ddj/btrL42XPps8/ku0O8FGwMv1F0QbIg9uJf0/img.png)
그리고 위에서 확인하실 수 있는것과 같이, createContext 도 필요하니 머릿속에 넣어두셔야 합니다.
![](https://blog.kakaocdn.net/dn/bR8MNj/btrL3EclMrq/pRWy4AvtSe2nzqqkVNrKkk/img.png)
그외에 HttpHandler 에 대해서도 공부해 보시면 좋을것 같네요..
HttpServer 을 통한 Mock 서버 구축 하기
위의 지식을 기반으로 간단한 예제 코드를 작성해보면요 아래와 같습니다.
import java.io.IOException;
import java.net.InetSocketAddress;
import com.sun.net.httpserver.HttpServer;
public class HttpServerTest {
public static void main(String[] args) throws IOException {
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/", he -> {
String body = "hello test http server";
he.sendResponseHeaders(200, body.length());
he.getResponseBody().write(body.getBytes());
he.getRequestBody().close();
});
server.start();
System.out.println("server started at :8080");
}
}
728x90
300x250
'좋아하는 것_매직IT > 26.Java' 카테고리의 다른 글
Java 스트림(Stream) 깔끔하게 정리하기 (0) | 2023.12.27 |
---|---|
openjdk 최신버전 다운로드 받기 (0) | 2023.04.05 |
ChatGPT 연동 JAVA로 구현해보기 (ft.python, nodejs) (3) | 2023.02.14 |
면접때 꼭 물어보는 JAVA(JVM) 주요 메모리 영역 깔끔하게 정리하기 (0) | 2022.06.05 |
제네릭 클래스(generic class) 깔끔하게 정리하기 (0) | 2022.04.18 |