이 글은 http 모듈에 대해 배우고 인터페이스 작성의 기초를 다지는 데 도움이 될 것입니다.
1. 웹 서버
웹 서버란 무엇인가요?
애플리케이션(클라이언트)에 특정 리소스가 필요할 때 Http를 통해 서버에 리소스를 요청할 수 있습니다. 리소스를 제공하는 서버는 웹 서버입니다.
1.1 서버에 대한 첫 경험
1.2 서버를 생성하는 두 가지 방법
- http.createServer가 서버 객체를 반환합니다.
- 하단 레이어는 실제로 직접 새로운 서버 객체를 사용합니다
1.
요청 개체는 클라이언트가 서버에 전달한 모든 정보를 캡슐화합니다.
이 요청의 URL은 서버가 다른 URL에 따라 다르게 처리해야 합니다. 예를 들어 이 요청은 GET 및 POST 요청에 전달된 매개변수 및 처리 방법이 다릅니다.
이 요청의 헤더에는 클라이언트 정보, 데이터 수신 형식, 지원되는 인코딩 형식 등과 같은 일부 정보도 포함됩니다. .…
정기 요청:
1.3.1 request-url
클라이언트가 요청을 보낼 때 다른 데이터를 요청한 다음 다른 요청 주소가 전달됩니다. 서버 측 다양한 요청 주소에 따라 다양한 응답이 이루어져야 합니다. 사용자의 요청 주소에 추가 매개변수도 포함되어 있는 경우 이를 어떻게 구문 분석해야 합니까?
URL 모듈을 사용할 수 있습니다.
그 중 url 모듈은 URL 처리 및 구문 분석을 위한 실용적인 도구를 제공합니다.
Import url const url = require('url')
요청 데이터가 다음과 같다고 가정합니다:
콘솔에서 URL을 구문 분석한 결과는 다음과 같습니다.
쿼리 문자열 모듈 가져오기
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(pathname === '/login'){ console.log(query); console.log(qs.parse(query)); const { username, password } = qs.parse(query) console.log(username,password); res.end('请求结束') }});// 2. 设置端口号并启动服务器server.listen(8888,'0.0.0.0',()=>{ console.log("服务器启动成功~");})
✅콘솔 출력 결과:const qs = require('querystring');
-
1.3.2 request-method
Restful 사양(디자인 스타일)에서는 다음을 통해 데이터를 추가, 삭제, 수정 및 확인해야 합니다. 다양한 방법 요청 방법: POST: 새 데이터 생성
PATCH: 데이터 업데이트
- DELETE: 데이터 삭제
- 다른 요청 방법(방법)을 판단하여 다른 처리를 수행할 수 있습니다. .
- 다음이 본문에 있는 JSON 요청 데이터라고 가정해 보세요 -> 서버가 사용자 이름과 비밀번호를 어떻게 얻도록 할까요?
✅콘솔 출력 결과
- 1.3.2 request-headers
-
content-type은 이 요청에 포함된 데이터 유형입니다.
신청 /json은 json 유형을 나타냅니다.
application/xml은 xml 유형을 나타냅니다.
**content-length: ** 파일 크기 및 길이- 연결 유지:
-
- http는 TCP 프로토콜을 기반으로 하지만 일반적으로 요청 및 응답 직후에 중단됩니다.
- http1.0에서 연결을 계속 유지하려면: ①브라우저에서 연결을 추가해야 합니다. 요청을 유지하세요. header -alive; ② 서버는 응답 헤더에 Connection:keey-alive를 추가해야 합니다. ③ 클라이언트가 다시 요청하면 동일한 연결이 사용되며 직접 당사자는 연결을 중단합니다. , 모든 연결은 기본적으로 연결: 연결 유지: ① 웹 서버마다 연결 유지 시간이 다릅니다. ② Node의 기본값은 5s
- **accept-encoding:** 지원되는 파일 압축 형식을 서버에 알립니다. 예를 들어, js 파일은 .gz 파일에 해당하는 gzip 인코딩을 사용할 수 있습니다.
**accept: **클라이언트가 파일 형식 유형을 허용할 수 있음을 서버에 알립니다.
**user-agent: ** 클라이언트 관련 정보
1.4 응답 객체
1.4.1 응답-응답 객체클라이언트 응답 결과 데이터를 제공하려면 다음 두 가지 방법으로 수행할 수 있습니다.
쓰기 방법: 이 방법은 데이터를 직접 쓰는 것이지만 스트림을 닫지는 않습니다.- end 방법: 이 방법은 마지막 데이터를 쓰는 것이며, 쓴 후에 스트림이 닫힙니다. 종료 및 종료를 호출하지 않으면 클라이언트는 항상 결과를 기다립니다.
- 1.4.2 응답-응답 코드
클라이언트에 제공할 수 있는 많은 Http 상태 코드가 있습니다. 상황에 따라 다른 상태 코드를 반환합니다.
일반적인 상태 코드는 다음과 같습니다(상태 코드는 후속 프로젝트에서도 사용됩니다)
- http 상태 코드 수집
이유 문구
1xx정보(정보 상태 코드) 2xx Success(성공 상태 코드) 요청이 정상적으로 처리되었습니다. 3xx x redirection additional caction request client error rever 서버가 요청을 처리 할 수 없었습니다. 요청 처리 오류 일반 응답 코드: 상태 코드 설명 상태 설명 확인
요청이 성공했습니다. 일반적으로 GET 및 POST 요청에 사용됩니다 400잘못된 요청 클라이언트 요청의 구문 오류로 인해 서버가 이해할 수 없습니다 요청에 사용자 신원 인증이 필요합니다 403 서버가 클라이언트의 요청을 이해하지만 요청 실행을 거부합니다. 404 서버가 클라이언트의 요청에 따라 리소스(웹페이지)를 찾을 수 없습니다. 이 코드를 통해 웹사이트 디자이너는 "요청한 리소스를 찾을 수 없습니다"라는 개인화된 페이지를 설정할 수 있습니다. 500 내부 서버 오류, 요청을 완료할 수 없습니다 503 과부하 또는 시스템 점검으로 인해 서버가 일시적으로 클라이언트 요청을 처리할 수 없습니다. 지연 시간은 서버의 Retry-After 헤더 정보에 포함될 수 있습니다 1.4.3 응답-응답 헤더 res.writeHead: 헤더와 상태를 동시에 작성합니다.반환 헤더 정보, 주로 두 가지 방법이 있습니다: res.setHeader: 한 번에 하나의 헤더 정보를 작성합니다. 더 많은 노드 관련 지식을 보려면 다음을 방문하세요. :
nodejs 튜토리얼!
위 내용은 HTTP 모듈을 심층적으로 이해하도록 안내합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구
