Programing

Java로 간단한 HTTP 서버를 만드시겠습니까?

lottogame 2020. 11. 18. 08:18
반응형

Java로 간단한 HTTP 서버를 만드시겠습니까?


Java로 간단한 HTTP 서버를 만드는 가장 쉬운 방법은 무엇입니까? 이것을 용이하게하기 위해 공유지에 도서관이 있습니까? 에 응답하기 만하면되며 GET/POST응용 프로그램 서버를 사용할 수 없습니다.

이를 수행하는 가장 쉬운 방법은 무엇입니까?


Jetty를 사용하십시오 . 다음은 Jetty 포함에 대한 자습서입니다 . (여기에 오래된 튜토리얼이 있습니다.)

Jetty는 매우 가볍지 만 서블릿 컨테이너를 제공하므로 "애플리케이션 서버"사용에 대한 요구 사항과 모순 될 수 있습니다.

애플리케이션에 Jetty 서버를 포함 할 수 있습니다. Jetty는 임베디드 또는 서블릿 컨테이너 옵션을 허용합니다.


이것이 내가 이것에 대해 갈 방법입니다.

  1. ServerSocket청취를 시작하십시오 (아마도 포트 80에서).
  2. 연결 요청을 받으면 수락하고 다른 스레드 / 프로세스로 전달합니다 (이렇게 ServerSocket하면 계속 수신하고 다른 연결을 수락 수 있습니다).
  3. 요청 텍스트 (특히 GET 또는 POST인지 확인할 헤더와 전달 된 매개 변수를 구문 분석합니다.
  4. 자신의 헤더 ( Content-Type등)와 HTML로 답하십시오 .

헤더의 예를보기 위해 Firebug (Firefox에서)를 사용하는 것이 유용하다고 생각합니다. 이것은 당신이 에뮬레이트하려는 것입니다.

이 링크를 시도하십시오 : -Java의 다중 스레드 서버


가장 쉬운은 간단한 튜토리얼, 아니 WEB-INF 서블릿하지 API 종속성이 있습니다. 단일 JAR의 간단한 경량 HTTP 서버입니다.


Sun JDK를 사용하는 경우이 내장 라이브러리
를 사용할 수 있습니다. 사용 방법은이 사이트를 참조하십시오.

여기에 여러 개의 오픈 소스 HTTP 서버 가없는 경우 소프트웨어에 임베드 할 수 있습니다.


Java 6에는 기본 내장 http 서버가 있습니다.

여기에서 스레드 확인

참고로 나머지 웹 서비스를 계획하고 있다면 jersey를 사용한 간단한 예가 있습니다.


이 예제가 여기에 없다는 것이 놀랍습니다.

http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/ElementalHttpServer.java

편집 >> 위의 링크에 연결할 수 없습니다. 다음은 POST 예제에서 발췌 한 다음 HTTP 예제에 대한 링크입니다.

 if (!conn.isOpen()) {
        Socket socket = new Socket(host.getHostName(), host.getPort());
        conn.bind(socket);
    }
    BasicHttpEntityEnclosingRequest request = new
    BasicHttpEntityEnclosingRequest("POST",
    "/servlets‐examples/servlet/RequestInfoExample");
    request.setEntity(requestBodies[i]);
    System.out.println(">> Request URI: " + request.getRequestLine().getUri());
    httpexecutor.preProcess(request, httpproc, coreContext);
    HttpResponse response = httpexecutor.execute(request, conn, coreContext);
    httpexecutor.postProcess(response, httpproc, coreContext);
    System.out.println("<< Response: " + response.getStatusLine());
    System.out.println(EntityUtils.toString(response.getEntity()));
    System.out.println("==============");
    if (!connStrategy.keepAlive(response, coreContext)) {
    conn.close();
    } else {
    System.out.println("Connection kept alive...");
    }

http://hc.apache.org/httpcomponents-core-ga/httpcore/examples/org/apache/http/examples/


저는 Java로 잠시 동안 간단한 HTTP 서버를 작성하는 방법을 설명하는 튜토리얼을 작성했습니다. 코드가 수행하는 작업과 튜토리얼이 진행됨에 따라 서버가 그렇게 작성되는 이유를 설명합니다. http://kcd.sytes.net/articles/simple_web_server.php 유용 할 수 있습니다.


Jetty 는 HTTP 서버를 쉽게 삽입 할 수있는 좋은 방법입니다. 핸들러를 연결하는 자체 간단한 방법을 지원하며 더 많은 기능이 필요한 경우 완전한 J2EE 앱 서버입니다.


Tomcat을 임베딩하는 것은 상대적으로 어렵지 않습니다. 여기에 대한 좋은 StackOverflow 참조가 있습니다.


서블릿 컨테이너는 확실히 갈 길입니다. Tomcat 또는 Jetty가 너무 무겁다면 Winstone 또는 TTiny를 고려 하십시오 .


Undertow is a lightweight non-blocking embedded web server that you can get up and running very quickly.

public static void main(String[] args) {
Undertow.builder()
        .addHttpListener(8080, "localhost")
        .setHandler((exchange) -> exchange.getResponseSender().send("hello world"))
        .build().start();
}

I just added a public repo with a ready to run out of the box server using Jetty and JDBC to get your project started.

Pull from github here: https://github.com/waf04/WAF-Simple-JAVA-HTTP-MYSQL-Server.git

참고URL : https://stackoverflow.com/questions/2717294/create-a-simple-http-server-with-java

반응형