사이트의 구성
클라이언트와 서버 측 : 웹 응용 프로그램은 두 부분으로 나눌 수 있습니다.
클라이언트 : 브라우저에서 실행의 일부는 프로그램으로 사용자 볼 수있는 인터페이스와 상호 작용이다. HTML, CSS, 자바 스크립트 건물을 사용.
서버 : 데이터를 저장하고, 애플리케이션 로직 처리를 담당하는 서버에서의 동작의 일부.
웹 서버
웹 사이트 서버 : 웹 사이트 서비스에 대한 액세스는 사이트 서버 시스템, 그것은 클라이언트의 수신 할 수있다 제공 요청을 요청하기 위해 응답을 .
노드 웹 서버 구성 요소 :
1 컴퓨터
2, 노드 환경
(3), 오브젝트 요청 응답
몇 명사 서버
IP 주소
유일하게 인터넷 장치를 식별합니다.
IP는 인터넷 프로토콜 주소를 대신하여, 인터넷 프로토콜 주소의 줄임말입니다
로컬 IP : 127.0.0.1
도메인 이름
IP 기억하기 어려운 주소 때문에, 도메인 이름의 개념, 그래서 도메인 이름은 보통이라고 인터넷 URL을 사용 .
http://www.itheima.com => http://124.165.219.100/
주소 표시 줄에 URL 입력, 결국은되지만 IP에 도메인 이름을 변환 지정된 사이트 서버에 액세스 할 수 있습니다.
기계 도메인 : 로컬 호스트
포트
외부 세계와의 통신은 서버 컴퓨터에서 제공하는 다른 서비스를 구분하는 데 사용되는 컴퓨터 포트 AC 콘센트입니다.
URL
또한 URL (범용)로 알려진 범용이, 인터넷을 식별하기 위해 설계된 온라인 리소스 위치 주소 모드 중 하나의 종류 및 설정, 우리는 일반적으로 URL 인 웹 페이지 주소를 참조하십시오.
URL의 구성
전송 프로토콜 : // 서버 IP 또는 도메인 이름 : 포트 / 자원 로고의 위치
HTTP : //www.itcast.cn/news/20181018/ 09152238514.html
HTTP : 하이퍼 텍스트 전송 프로토콜, 게시하고 HTML 페이지를 수신하는 방법을 제공한다.
로컬 웹 서버 만들기
1 // 웹 서버 모듈 만들기 2 // 참조 시스템 HTTP 모듈 . 3 CONST =의 HTTP 요구 ( "HTTP" ) . 4 . 5 // 웹 서버를 만드는 6. CONST = 앱 http.createServer () . 7 . 8 // 때 서버 이 때 요청 9 // 이 서버에 이벤트를 추가하는 요청 이벤트 대신 요청 이벤트 핸들러 뒤에 추가된다 (10) (REQ, RES) =>는 app.on ( "요구", { . 11 // RES는 대응 오브젝트 (12)가 // REQ는 요청 목적 13 인 14 // 클라이언트 요청 응답 15 res.end ( '사용자 헬로 </ H1의> <의 H1>' ) (16) }) . 17 18 // 외부 세계에 서비스를 제공하기 위해, 수신 포트 (19) app.listen (3000 ) (20) (21) 을 console.log ( "서버가 성공적으로 시작");
HTTP 프로토콜
HTPP 프로토콜 : 하이퍼 텍스트 전송 프로토콜 (영어 : 하이퍼 텍스트 전송 프로토콜, 약칭 : HTTP)을 정의 서버가되는 방법을 전송 클라이언트 - 서버 아키텍처 작업을 기반으로 로컬 브라우저에 하이퍼 텍스트는, 클라이언트 (사용자)와 서버 (이다 웹 사이트) 요청 및 응답 기준.
패킷
데이터를 포함한 패킷의 호출시 HTTP 요청과 응답의 데이터 블록 전송은 전송 및 추가 정보, 좋은 양식을 준수합니다.
요청 패킷
서버 추가 요청 이벤트를 두 번째 매개 변수는 두 개의 기본 매개 변수가 이벤트 핸들러 객체 때의 기본으로, 첫 번째 매개 변수를 REQ 요청 객체
이 개체는 세 가지 속성이 있습니다
req.headers 요청 패킷을 얻기 //
요청 패킷 방식 얻기
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 // 오기 요청 메시지 정보 2 // req.headers 3. CONSOLE.LOG (req.headers) . 4 // 온 키]의 요구 패킷 얻었다 . 5 CONSOLE.LOG하면 (req.headers는 [ "수락 "]);
req.url // 주소 획득 요구
자원의 위치는 URL 필드에서 획득
전송 프로토콜 : // 서버 IP 또는 도메인 이름 : 포트 / 자원 로고의 위치
자원이 기본 위치 필드 획득이 아닌 경우 /
다른 필드는 다른 작업을 인수
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 // 요청 어드레스 얻을 : 식별자, 다른 응답을 사용자에게 제공하는 것 2 // req.url . 3 CONSOLE.LOG (req.url을) . 4 IF (req.url == "/ 인덱스"|| req.url == "/" )는 { 5. res.end ( "<H2> 홈에 오신 것을 환영합니다 </ H2>" ) . 6 } 다른 IF (req.url == "/ 목록" ) { . 7 구입 res.end ( "가능 행 listpage " ) . 8 } 다른 { 9. res.end ("주 왔을 " ); 10 }
req.method // GET 요청 방법
두 가지 유형으로 구분 요청 :
데이터에 대한 요청 GET 요청 : 주소 필드에 URL을 입력
POST 요청 데이터를 전송하는 요청입니다 : 게시물 요청 양식을 보내
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
. 1 <! - 이 방법 : 지정 현재 양식 제출 방법 3. 작업 : 현재 양식의 지정된 주소를 제출 . 4 -> . 5 < 양식 방법 = "POST" 행동 = "HTTP : // 로컬 호스트 : 3000" > . 6 < INPUT 입력 = "제출" > . 7 </ 양식 >
다른 요청은 다른 작업을 할 수
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 // 获取请求方式 2 // req.method 3 CONSOLE.LOG (req.method); (4) 만약 (req.method == "POST" ) { 5 res.end ( "POST" ) 6 } 다른 경우 (req.method == "GET" ) { 7 res.end ( "GET" ) 8 }
응답 메시지
설정 응답 패킷
1 개 // 응답 패킷 이 // res.writeHead () 3. // 매개 변수 1 : 상태 코드는 없습니다 쓰기 기본값은 200이다 할 4. // 매개 변수 2 : 개체 : 응답 패킷 정보를 기록합니다. 수신 된 패킷을 처리 할 5. res.writeHead를 (200이며 , { 6. // HTML로 설정 파싱 코드 포맷 UTF8 코딩 7. "컨텐츠 타입": "텍스트 / HTML; 문자셋 = UTF8" . 8 });
상태 코드
200 성공 요청
404 요청한 리소스가 발견되지
500 서버 오류
(400) 클라이언트에 구문 오류가 요청
메시지의 응답 콘텐츠 형식
text / html과
텍스트 / CSS
응용 프로그램 / 자바 스크립트
이미지 / JPEG
응용 프로그램 / JSON
-------