웹서버란?
애플리케이션(클라이언트)이 특정 리소스를 필요로 할 때, 리소스를 제공하는 서버는 HTTP를 통해 서버에 요청할 수 있습니다.
1.1 서버에 대한 첫 번째 경험
;1.2 서버를 생성하는 두 가지 방법
1.3 요청 객체
요청 객체는 클라이언트가 서버에 전달한 모든 정보를 캡슐화하며,
GET, POST 요청 수신과 같은
다양한 URL에 따라 다양한 처리를 수행해야 합니다.
매개변수와 처리 방법은 다릅니다.
이 요청의 헤더에는 클라이언트 정보, 데이터 수신 형식, 지원되는 인코딩 형식 등과 같은 일부 정보도 포함됩니다.
일반 요청:
요청을 보낼 때 클라이언트는 다른 데이터를 요청하고 다른 요청 주소가 전달됩니다. 서버는 다른 요청 주소를 기반으로 다른 응답을 해야 합니다.
사용자의 요청 주소에 몇 가지 추가 매개변수도 포함된 경우 이를 어떻게 구문 분석해야 합니까?
url 모듈을 사용할 수 있습니다.
그중 url 모듈은 URL 처리 및 구문 분석을 위한 유틸리티 도구를 제공합니다.
Import url const url = require('url')
요청 데이터가 다음과 같다고 가정합니다.
URL을 구문 분석하는 콘솔의 결과는 다음과 같습니다.
그 중 pathname은 우리가 얻어야 할 마지막 경로입니다. 우리의 목적은 쿼리에서 사용자 이름과 비밀번호를 별도로 얻는 것입니다.
쿼리 문자열 모듈 가져오기 const qs = require('querystring');
const http = require("http")const url = require('url')const qs = require('querystring')// 1. 서버 만들기 const server = http .createServer((req, res) => { // 내장 모듈 사용 const{ pathname,query } = url.parse(req.url) if(경로명 === '/로그인'){ console.log(쿼리); console.log(qs.parse(쿼리)); const { 사용자 이름, 비밀번호 } = qs.parse(쿼리) console.log(사용자명,비밀번호); res.end('요청 종료') }});// 2. 포트 번호를 설정하고 서버를 시작합니다. server.listen(8888,'0.0.0.0',()=>{ console.log("서버가 성공적으로 시작되었습니다~");})
Restful 사양(디자인 스타일)에서는 데이터를 추가, 삭제, 수정 및 확인하기 위해 다양한 요청 방법을 사용해야 합니다.
다양한 요청 방법을 판단하여 다양한 처리를 수행할 수 있습니다
다음이 본문의 JSON 요청 데이터라고 가정합니다. -> 서버가 사용자 이름과 비밀번호를 어떻게 얻도록 할까요?
content-type은 이 요청에 포함된 데이터 유형입니다.
**
-length: **파일유지
의 크기와 길이
:**accept-encoding: ** 서버, 클라이언트에 클라이언트가 지원하는 파일 압축 형식을 알립니다. 예를 들어 js 파일은 .gz 파일에 해당하는 gzip 인코딩을 사용할 수 있습니다.
**수락:** 클라이언트가 파일 형식 유형을 수락할 수 있음을 서버에 알립니다
. *user-agent:** 클라이언트 관련 정보
1.4 응답 객체
결과 데이터로 클라이언트에 응답하려면 다음 두 가지 방법으로 수행할 수 있습니다.
참고: end 및 close를 호출하지 않으면 클라이언트는 결과를 기다립니다.
Http 상태 코드(Http Status Code)는 Http 응답 상태를 나타내는 데 사용되는 숫자 코드입니다.
범주 | 이유 문구 | |
---|---|---|
1xx | 정보 | 수락된 요청을 처리 중입니다. |
2xx | 성공 | 요청이 정상적으로 처리되었습니다. |
3xx | 리디렉션 | 요청을 완료하려면 추가 작업이 필요합니다. |
4xx | 클라이언트 오류 클라이언트 | 오류 요청 오류, 서버가 요청을 처리할 수 없습니다 |
5xx | 서버 오류(서버 오류) | 서버 요청 처리 중 오류가 발생 |
일반적인 응답 코드:
상태 코드 | 설명 상태 | 설명 | |
---|---|---|---|
200 | 확인 | 요청이 성공했습니다. | |
400 | 잘못된 요청은 | 클라이언트 요청의 구문 오류입니다. | |
401 | |||
승인 | 되지 않은 | 요청에는 사용자 인증이 필요합니다. | |
403 | 금지됨 | . | 404 |
찾을 | 수 없음. | 클라이언트의 요청에 따라 서버가 요청을 처리할 수 없습니다. 이 코드를 통해 웹사이트 디자이너는 "요청한 리소스를 찾을 수 없습니다."라는 메시지를 설정할 수 있습니다. | |
500 | 내부 서버 오류입니다 | . | |
503 | 서비스를 사용할 수 없습니다 | . , 서버가 일시적으로 클라이언트의 요청을 처리할 수 없습니다. 지연 시간은 서버의 Retry-After 헤더에 설정된 상태 코드에 포함될 수 있습니다 |
.
두 가지 주요 방법이 있습니다: