PhantomJS-웹 서버 모듈 방법

이 장에서는 PhantomJS의 웹 서버 모듈의 다양한 방법에 대해 설명합니다.

닫기

그만큼 close 메소드는 웹 서버를 닫는 데 사용됩니다.

통사론

구문은 다음과 같습니다.

var server = require('webserver').create();
server.close();

다음 예는 close 방법.

var webserver = require('webserver');
var server = webserver.create();
var service = server.listen(8080,function(request,response){
});

if(service) console.log("server started - http://localhost:" + server.port);
console.log(server.port);
server.close();
console.log(server.port);

위의 프로그램은 다음을 생성합니다. output.

server started - http://localhost:8080 
8080

여기, 우리는 위로했습니다 server.port서버를 닫은 후. 따라서 웹 서버가 이미 닫혀 있으므로 응답하지 않습니다.

들리다

그만큼 server.listen 메소드는 두 개의 인수가있는 포트 및 콜백 함수를 취합니다. Request ObjectResponse Object.

그만큼 Request Object 다음 속성을 포함합니다-

  • Method − GET / POST 방식을 정의합니다.

  • URL − 요청 된 URL을 표시합니다.

  • httpVersion − 실제 http 버전을 표시합니다.

  • Headers − 키 값 쌍이있는 모든 헤더를 표시합니다.

  • Post − 게시 방법에만 적용되는 요청 본문.

  • postRaw − Content-Type 헤더가 'application / x-www-formurlencoded'로 설정된 경우 게시물의 원본 콘텐츠는이 추가 속성 (postRaw)에 저장되고 해당 게시물은 URL 디코딩 된 버전으로 자동 업데이트됩니다. 데이터의.

그만큼 Response Object 다음 속성을 포함합니다-

  • Headers− 모든 HTTP 헤더를 키-값 쌍으로 포함합니다. 처음 쓰기를 호출하기 전에 설정해야합니다.

  • SetHeader − 특정 헤더를 설정합니다.

  • Header (name) − 주어진 헤더의 값을 반환합니다.

  • StatusCode − 반환되는 HTTP 상태 코드를 설정합니다.

  • SetEncoding (encoding)− write ()에 주어진 데이터를 변환하는데 사용됩니다. 기본적으로 데이터는 UTF-8로 변환됩니다. 데이터가 이진 문자열 인 경우 "binary"를 나타냅니다. 데이터가 버퍼 (예 : page.renderBuffer) 인 경우 필요하지 않습니다.

  • Write (data)− 응답 본문에 대한 데이터를 전송합니다. 여러 번 호출 할 수 있습니다.

  • WriteHead (statusCode, headers)− 요청에 응답 헤더를 보냅니다. 상태 코드는 3 자리 HTTP 상태 코드 (예 : 404)입니다. 마지막 인수와 헤더는 응답 헤더입니다.

  • Close − http 연결을 종료합니다.

  • CloseGracefully − close ()와 유사하지만 응답 헤더가 먼저 전송되었는지 확인합니다.

통사론

구문은 다음과 같습니다.

var server = require('webserver').create(); 
var listening = server.listen(8080, function (request, response) {}

예를 들어 이해하는 방법 listen 방법이 작동합니다.

var page = require('webpage').create(); 
var server = require('webserver').create(); 
var port = 8080; 
var listening = server.listen(8080, function (request, response) { 
   console.log("GOT HTTP REQUEST"); 
   console.log(JSON.stringify(request, null, 4)); 
   
   // we set the headers here 
   response.statusCode = 200; 
   response.headers = {"Cache": "no-cache", "Content-Type": "text/html"};  
 
   // the headers above will now be sent implictly 
   // now we write the body 
   response.write("<html><head><title>Welcone to Phantomjs</title></head>"); 
   response.write("<body><p>Hello World</p></body></html>"); 
   response.close(); 
}); 

if (!listening) { 
   console.log("could not create web server listening on port " + port); 
   phantom.exit(); 
} 

var url = "http://localhost:" + port + "/foo/response.php"; 
console.log("sending request to :" +url); 
page.open(url, function (status) { 
   if (status !== 'success') { 
      console.log('page not opening'); 
   } else { 
      console.log("Getting response from the server:"); 
      console.log(page.content); 
   } 
   
   phantom.exit(); 
});

위의 프로그램은 다음을 생성합니다. output.

sending request to :http://localhost:8080/foo/response.php 
GOT HTTP REQUEST { 
   "headers": {
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
      "Accept-Encoding": "gzip, deflate", 
      "Accept-Language": "en-IN,*", 
      "Connection": "Keep-Alive", 
      "Host": "localhost:8080", 
      "User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/538.1 
         (KHTML, like Gecko) PhantomJS/2.1.1 Safari/538.1" 
   }, 
   "httpVersion": "1.1", 
   "method": "GET", 
   "url": "/foo/response.php" 
} 
Getting response from the server: 
<html><head><title>Welcone to Phantomjs</title></head><body><p>Hello World</p></body>
</html>