1. 개념
HTTP
To use the HTTP server and client one must require('http').
The HTTP interfaces in Node.js are designed to support many features of the protocol which have been traditionally difficult to use. In particular, large, possibly chunk-encoded, messages. The interface is careful to never buffer entire requests or responses — the user is able to stream data.
HTTP message headers are represented by an object like this:
{ 'content-length': '123', 'content-type': 'text/plain', 'connection': 'keep-alive', 'host': 'mysite.com', 'accept': '*/*' }
출처: Nodejs Docs
2. http Tag
GET, POST 등 쿼리 정보는 다음 문서 참조
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.3
3. 관련 메소드
구조적으로 들어갈 수 밖에 없는 메소드
자주 쓰이고 중요해서 정리해둔다.
http.request
Interface | http.request(options, callback) |
Parameter |
option: Object or String ※ if String, it's parsed by url.parse() method. callback: Function |
fuction | Client request to Server |
return | http.ClientRequest |
<Option>
host: Domain name or Server IP Address, (Default: localhost)
hostname: 호스트명을 url.parse() 통해 파싱할 때 사용.
port: Server Port Address (Default: 80)
method: HTTP Request Function Nmae (Default: GET)
path: Request Path, (Default: /)
headers: Object that has request header.
[agent]
HTTP Client 요청시 사용하는 Socket pool,
Agent Option은 소켓 풀 동작 방식을 설정함.
ex) Connection : keep-alive
사용 가능한 소켓을 기다리는 http 요청이 없을 경우 -> socket.close()
기본적으로 소켓들을 재활용하는 형태로 운영됨.
=> 명시적으로 socket.close를 해줄 필요 없어서 편해짐.
-
undefined(Defualt) : use Node.js Global Agent
-
Agent Object: Agent 내부에 존재하는 이전 소켓만 사용.
-
false: Socket Pool 사용 X, 명시적으로 'Connection: close' 로 세팅하여 매번 닫음.
[http 필수 Header]
- 'Connection' : keep-alive
- Contetn-length
- Expect
- Authorization
Http 필수 Header | Description |
Connection: keep-alive | Node.js에게 서버가 커넥션을 버리지 않고 저장하여 다음 요청시 사용한다는 것을 명시 |
Content-length | 인코딩 Default 값을 비활성화함. |
Expect | 요청 헤더 값들을 즉시 전달 ex. Exepct: 100-continue => Timeout , 'continue' 이벤트를 listen 하겠다는 세팅을 하게됨. |
Authorization | Default Authorization 대신 'auth' option 을 사용. |
4. 예제
[예제]
[get 방식 요청]
이제 이정도는 한눈에 코드가 들어온다.
점점 nodejs가 익숙해진다.
Stream의 개념에 대해 다음 포스팅에 잘 정리되어있다.
'Web > Nodejs' 카테고리의 다른 글
Middleware Function 'next' (0) | 2019.12.31 |
---|---|
express & connect (0) | 2019.12.06 |
node.js global 'exports' (0) | 2019.11.30 |
Test를 위한 모듈 'assert' (0) | 2019.11.28 |
module과 export (0) | 2019.11.16 |