NodeJS http.ServerRequest & http.ServerResponse

6048 단어
http.ServerRequest
이 대상 은 보통 HTTP SERVER 사용자 가 수 동 으로 만 들 지 않 고 'request' (http. server 와 관련 된 request 이벤트 의 함수 인자 입 니 다. 하 나 는 request 이 고 하 나 는 response 입 니 다)
이 대상 은 다음 이 벤트 를 촉발 할 수 있 습 니 다:
1. Event: ‘data’
function (chunk) {
      }
(클 라 이언 트 가 서버 에 보 낸) 중 일 부 를 받 으 면 data 사건 이 발생 합 니 다.
예 를 들 어 대표 (chunk) 는 유일한 매개 변수 로 리 셋 함수 에 전 달 됩 니 다.이때 데 이 터 는 에 따라 디 코딩 되 었 습 니 다 (문자 집합 인 코딩 이 아 닙 니 다).
메시지 체 자 체 는 문자열 로 request.setBodyEncoding() 방법 으로 인 코딩 을 설정 할 수 있 습 니 다.
2. Event: ‘end’
function () {
      }

매번 정 보 를 완전히 받 은 후에 한 번 씩 촉발 된다.인자 가 없습니다. 이 사건 이 발생 하면 다른 사건 이 발생 하지 않 습 니 다.
1. request.method request.method 읽 기 전용 문자열 입 니 다.예 를 들 어 'GET', 'DELETE'.
2. request.url
요청 한 URL 문자열 을 의미 합 니 다. 실제 HTTP 요청 의 URL 주소 만 포함 합 니 다.하면, 만약, 만약...
GET /status?name=ryan HTTP/1.1\r
Accept: text/plain\r
\r

request. url
'/status?name=ryan'

※ 이 URL 의 각 부분 을 분석 하고 싶다 면
이 URL 의 각 부분 을 분석 하려 면 사용 해 야 합 니 다 require('url').parse(request.url). Example.
node> require('url').parse('/status?name=ryan')
{ href: '/status?name=ryan'
, search: '?name=ryan'
, query: 'name=ryan'
, pathname: '/status'
}

※ 검색 문자열 에서 이 인 자 를 제시 하고 싶다 면
검색 문자열 에서 이 매개 변 수 를 제시 하려 면 require (query string). parse 방법 을 사용 하거나 true 를 두 번 째 매개 변수 로 require (url). parse 방법 으로 전송 할 수 있 습 니 다.Example:
node> require('url').parse('/status?name=ryan', true)
{ href: '/status?name=ryan'
, search: '?name=ryan'
, query: { name: 'ryan' }
, pathname: '/status'
}

3. request. headers 읽 기
4. request.httpVersion
HTTP 프로 토 콜 버 전 (문자열 형식) 입 니 다. 읽 기만 합 니 다.예 를 들 어 '1.1','1.0'.request.httpVersionMajor 는 첫 번 째 숫자 이 고 request.httpVersionMinor 는 두 번 째 숫자 이다.
5. request.setEncoding(encoding=’null’)
이 요청 한 패키지 의 문자 집합 인 코딩 을 설정 합 니 다. 'utf8' 'binary'결 성 된 값 은 null 입 니 다. 이것 은 'data' 이벤트 의 매개 변 수 는 Buffer 대상 이 될 것 입 니 다.
6. request.pause()
이 request 트리거 이 벤트 를 일시 정지 합 니 다. 업로드 제어 에 유용 합 니 다.
7. request.resume()
일시 정 지 된 request 를 복원 합 니 다.
8. request.connection request.connection 는 현재 연결 을 대표 하 는 net.Stream 대상 이다.HTTPS 에 대해 서 는 클 라 이언 트 (브 라 우 저) 의 인증 을 받 기 위해 request.connection.verifyPeer()request.connection.getPeerCertificate() 를 사용 합 니 다.
http.ServerResponse
이 대상 은 사용자 가 직접 만 드 는 것 이 아니 라 HTTP 서버 (http. server) 에 의 해 만들어 집 니 다.그것 은 'request' 의 두 번 째 매개 변수 로 서 이것 은 쓰기 가능 한 흐름 이다.
1. response.writeHead(statusCode, [reasonPhrase], [headers])
이 방법 은 응답 메시지 헤드 를 이번 요청 자 에 게 보 내 는 것 입 니 다. 첫 번 째 매개 변수 상태 코드 는 3 자리 숫자 로 구 성 된 HTTP 상태 입 니 다. 예 를 들 어 404 와 같은 것 입 니 다.마지막 매개 변수 headers 는 응답 헤드 의 구체 적 인 내용 입 니 다. 사람들 이 직관 적 으로 이해 할 수 있 는 reasonPhrase 을 두 번 째 매개 변수 로 사용 할 수 있 습 니 다.예 를 들 면:
var body = 'hello world';
response.writeHead(200, {
'Content-Length': body.length,
'Content-Type': 'text/plain'
});

전체 정보 교환 에서 이 방법 은 한 번 만 호출 할 수 있 고 호출 response.end() 전에 호출 해 야 합 니 다.
2. response.write(chunk, encoding=’utf8’)
이 방법 은 writeHead 방법 이 호출 된 후에 야 호출 될 수 있 으 며, 응답 메시지 의 일부 데 이 터 를 보 내 는 것 을 책임 집 니 다.신문 문체 의 여러 부분 을 보 내 려 면 여러 차례 이 방법 을 사용 할 수 있다.
인자 chunk 는 문자열 이나 buffer 일 수 있 습 니 다.chunk 가 문자열 이 라면 두 번 째 매개 변 수 는 이 문자열 을 바이트 흐름 으로 인 코딩 하 는 방법 을 지정 합 니 다. 부족 한 경우 'utf 8' 로 인 코딩 합 니 다.
메모: 이것 은 원본 형식 http 신문 문체 로 고 층 프로 토 콜 의 다 중 메시지 체 인 코딩 형식 ({'Transfer-Encoding':'chunked'}) 과 무관 합 니 다.
첫 번 째 호출 response.write() 시 이 방법 은 버퍼 링 된 메시지 헤더 와 첫 번 째 메시지 체 를 고객 에 게 보 냅 니 다.
두 번 째 response. write () 를 호출 할 때 node 는 스 트림 으로 데 이 터 를 보 내 려 고 한다 고 가정 합 니 다.이렇게 하면, 사실 response 대상 은 캐 시 메시지 체 의 첫 번 째 데이터 블록 일 뿐이다.
3. response.end([data], [encoding])
이 방법 은 서버 에 이 응답 하 는 모든 메시지 헤더 와 신문 문체 가 이미 발송 되 었 음 을 알려 줍 니 다.서버 가 이 호출 후 이 메시지 가 이미 발송 되 었 다 고 생각 합 니 다.이 방법 은 반드시 모든 응답 을 한 번 호출 해 야 한다.
data 인 자 를 지정 하면 그 는 호출 response.write(data, encoding) 한 다음 에 따라 호출 한 것 과 같다 response.end()。.

좋은 웹페이지 즐겨찾기