Baidu 백과사전에 설명된
HTTP(Hyper Text Transfer Protocol)는 일반적으로 TCP 위에서 실행되는 간단한 요청-응답 프로토콜입니다. 클라이언트가 서버에 보낼 수 있는 메시지 종류와 서버가 받는 응답 종류를 지정합니다. 요청 및 응답 메시지의 헤더는 ASCII 형식으로 제공됩니다. [9] 메시지 내용은 MIME 형식입니다. 이 간단한 모델은 개발과 배포를 매우 간단하게 만들어 주었기 때문에 웹의 초기 성공을 책임졌습니다.
JavaSE의 기본을 배웠다면 네트워크 프로그래밍에 익숙할 것입니다.
물론, 그렇지 않더라도 양심적인 저자의 말을 듣고 알려드리겠습니다.
1.1.
오늘은 컴퓨터입니다
.이메일, 친구와의 인스턴트 메시징, 짧은 비디오 엔터테인먼트 등 네트워크는 사람들의 일상이 되었습니다. 컴퓨터 네트워크를 통해 여러 대의 컴퓨터를 연결할 수 있다고 말할 수 있습니다.
컴퓨터 네트워크는 전송 매체, 통신 시설 및 네트워크 통신 프로토콜을 통해 네트워크 아래에서 여러 컴퓨터 장치를 연결하여 리소스 공유 및 데이터 전송을 실현합니다.
그러나 동일한 네트워크에 있는 컴퓨터가 연결되어 통신할 때는 특정 규칙을 준수해야 합니다. 컴퓨터 네트워크에서는 이러한 연결 및 통신 규칙을 네트워크 통신 프로토콜이라고 합니다.
여기서 말하는 http 프로토콜은 tcp를 기반으로 구현됩니다. 일반적인 http 애플리케이션 시나리오는 브라우저에 주소 문자열을 입력한 다음 웹 페이지를 반환하는 것입니다.
1.2. IP 주소 및 포트 번호
네트워크의 컴퓨터가 통신하려면 각 컴퓨터에 식별 번호가 할당되어야 합니다. 이 식별 번호는 데이터를 수신하는 컴퓨터 또는 데이터를 보내는 컴퓨터를 지정하는 데 사용할 수 있습니다.
LAN에서 컴퓨터의 IP 주소를 확인하세요. Windows 컴퓨터에서 WIN+R을 누르고 cmd를 입력하면 콘솔
ipconfig로 빠르게 들어갈 수 있습니다.
IP 주소를 통해 지정된 컴퓨터에 연결할 수 있지만 대상 컴퓨터의 애플리케이션 중 하나에 액세스하려면 포트 번호도 지정해야 합니다.
예를 들어 MySQL의 3306, TomCat의 8080
Node.js는 http 모듈을 제공합니다. http 모듈은 주로 HTTP 서버와 클라이언트를 구축하는 데 사용됩니다. HTTP 서버나 클라이언트 기능을 사용하려면 http 모듈을 호출해야 합니다.
2.1, 두꺼운 축적(자세한 소개, 사용된 개체 메서드의 자세한 소개, 전체 http 서비스 구축 프로세스)
프로세스 소개:
먼저 createServer() 메서드를 사용하여 서버 개체를 등록한
다음 이 서버 개체를 사용하여 on(
시작하려면
포트
번호를 바인딩하기 위해 Listen() 메서드를 호출하세요
모든 네트워크 서비스 애플리케이션은 항상 서비스 객체를 먼저 생성합니다. nodeJS에서는 이를 달성하기 위해 createServer 메소드를 사용할 수 있습니다.
// 먼저 http 모듈을 가져옵니다. const http = require('http'); //http 서비스 객체 생성 const server = http.createServer();
createServer 생성자가 반환한 Server 객체는 이벤트 발생기입니다. 여기서 생성된 서버 객체는 자체 이벤트 수신 및 처리에 사용됩니다. 처리. 이런 방식으로 http 요청이 전송될 때마다 우리는 이를 처리할 수 있습니다.
// 먼저 http 모듈을 가져옵니다. const http = require('http'); //http 서비스 객체 생성 const server = http.createServer(); // 이벤트 수신 바인딩 server.on('request', (request, response) => { //항상 좋은 일이 일어날 것이라고 믿으세요! })
이전에 (IP 주소 + 포트)를 소개했습니다. 컴퓨터가 인터넷에 연결되면 라우터는 DHCP를 통해 자동으로 IP 주소를 할당하지만 컴퓨터에서 지정된 프로그램에 액세스하려면 다음을 수행해야 합니다. 포트 번호도 있습니다.
컴퓨터에서 지정된 프로그램에 액세스하려면 Listen() 메서드도 사용해야 합니다. server.listen()을 사용하여 포트 번호를 수신 포트인 수신 메소드에 매개변수로 전달하기만 하면 됩니다.
// 먼저 http 모듈을 가져옵니다. const http = require('http'); //http 서비스 객체 생성 const server = http.createServer(); // 이벤트 수신 바인딩 server.on('request', (req, res) => { // 이 함수의 내용은 프로그램을 더 이해하기 쉽게 실행하기 위해 res 매개변수에 대한 작은 호출일 뿐입니다. // 응답 헤더를 작성합니다(작성하지 않으면 브라우저가 이를 인식하지 못합니다). res.writeHead(200,{'Content-Type':'text/html;charset=UTF8'}); //응답 데이터 보내기 res.end("<h1>node.js를 사용하여 서비스를 구축하는 것을 환영합니다</h1>"); }); //바인딩 포트 번호 server.listen(8888); //콘솔은 빠른 디버깅을 용이하게 하기 위해 주소를 인쇄합니다. console.log('http 서비스는 http://127.0.0.1:8888/에서 시작됩니다.'
코드 실행 데모:
위의 코드 데모는 매우 상세하지만 실제 개발에서는 단계별로 작성하는 것은 권장하지 않습니다.
다음으로 작성자를 따라 계속해서 코드를 더욱 강력하고 간결하게 최적화해 보겠습니다.
2.2, 얇은 머리카락(미니멀리즘이 왕), 우아합니다! 매우 우아합니다! )
객체를 단계별로 등록하는 과정은 너무 번거롭습니다. 여기서는 http 인터페이스를 구현하기 위해 작고 아름다운 방법을 사용합니다
. ); const 서버 = http.createServer(function(req,res){ //항상 좋은 일이 일어날 것이라고 믿습니다.}).listen(8080);
HTTP 요청이 서버에 도달할 때마다 createServer에 전달된 함수가 자동으로 실행됩니다. 그래서 이 기능을 요청 처리 기능이라고도 합니다. 이벤트 수신 콜백 함수를 직접 전달한 다음, Listen() 메서드를 클릭하여 포트 번호를 직접 바인딩할 수 있습니다.
하지만 이것만으로는 충분하지 않습니다. 예, 더 좋을 수 있습니다. 위의 콜백 함수를 화살표 함수로 수정하여 더 아름답게 만드세요.
const http = require('http'); const 서버 = http.createServer((req,res) => { //항상 좋은 일이 일어날 것이라고 믿으세요}).listen(8080);
물론
이것만으로는
충분하지 않습니다.
더 좋을 수 있습니다!
createServer()는 모든 것을 직접 해결합니다:
var http = require('http') // 서버 생성 http.createServer( (req, res) =>{ //항상 좋은 것이 곧 보내질 것이라고 믿습니다}).listen(8888);
이제 nodeJS의 http 모듈을 시작한 것을 축하합니다. 이제 여러분은
방법을 배웁니다
.