본문 바로가기

네트워크

02_2 웹 페이지를 전송하는 HTTP

02_2 웹 페이지를 전송하는 HTTP


웹 페이지가 표시되기까지의 과정


웹 페이지를 구성하는 주요 파일들

HTML

 웹 페이지의 내용을 담은 텍스트 파일이다. 웹 페이지에서 가장 중심이 되는 역할을 한다.

CSS

 웹 페이지의 화면 표시 방법이 정의된 디자인 파일이다. 화면 요소의 레이아웃이나 글꼴, 크기, 색깔 등을 결정한다.

JS

 자바스크립트라는 언어로 작성된 프로그램 파일이다. 사용자와 상호작용 하는 동적인 웹 페이즈를 만들고 싶을 때 사용한다.

JPEG

 주로 사진을 표시하기 위한 이미지 파일이다. 이 형식 외에도 PNG나 GIF 파일 형식도 많이 사용되고, 동영상 파일도 많이 사용 된다.


- HTML 내용을 확인한 결과, 추가로 CSS나 JPEG가 필요하면 해당 파일들을 받기 위해 새로운 요철을 보냅니다.

- URL로 페이지를 요청하면 파일을 응답으로 되돌려 주는 간단한 동작 방식입니다.


HTTP 메시지

- 클라이언트의 웹 브라우저와 웹 서버는 HTTP( HyperText Transfer Protocol )라는 애플리케이션 계층의 프로토콜을 사용합니다. 

- 통신 과정에서 주고 받는 정보들은 HTTP 메시지라고 부르고, 크게 요청(Request)과 응답(Response)의 두 가지 형태로 구분 됩니다.

- HTTP는 통신 시 정보를 한 번씩 주고 받은 후 바로 끊는 형태로 처리됩니다. 이렇게 상태 정보를 정장하지 않는 통신 형태를 스테이트리스(stateless) 라고 합니다. HTTP는 대표적인 무상태 프로토콜입니다.


HTTP 요청과 URL

- 특정 웹 페이지를 받아 보기 위해서는 HTTP 요청을 보내야 하는데, 이 때 URL(Uniform Resource Locator)이라는 문자열을 사용합니다. 

- URL은 구성에는 각 뜻이 존재 합니다.

< 출처 : http://www.cellbiol.com/bioinformatics_web_development/chapter-3-your-first-web-page-learning-html-and-css/hosts-domains-and-urls/ >


HTTP 응답과 상태 코드

- HTTP 응답 데이터의 첫 번째 행에는 요청에 대한 응답 상태를 표시하기 위한 상태 코드가 들어갑니다. 응답이 정상이라면 메시지 바디에 요청한 웹 페이지의 내용이 들어갑니다.

< 출처 : https://www.lesstif.com/pages/viewpage.action?pageId=26083972 >


1. 응답 정보 행 : 상태 정보가 들어간다.

2. 헤더 : 헤더에는 파일 갱신 날짜나 크기와 같은 정보가 들어간다.

3. 메세지 바디 : 메세지 바디에는 HTML 파일의 내용이 들어간다.


상태 코드의 의미

상태 코드

의미

 100 Continue

 서버가 헤더는 받았고 바디가 올 것을 기다리고 있음.

 101 Switching Protocols

 클라이언트가 서버에게 프로토콜을 바꾸자고 제안했고 서버도 수락함

 200 OK

 요청이 성공했고 요청한 결과 데이터를 응답으로 보냈음. 

 201 Created

 요청이 성공했고 새로 만들어진 URL을 응답으로 보냈음. 웹 서비스나 웹 애플리케이션에서 사용됨.

 301 Moved Permanently

 요청한 내용이 다른 경로로 옮겨졌음. 이후 옮겨진 경로로 요청해야 함.

 301 Found

 요청한 내용이 다른 경로로 옮겨졌음. 임시로 옮겨진 것이라 이후에도 동일한 경로로 요청해야 함.

 304 Not Modified

 요청한 내용은 갱신되지 않았음.

 400 Bad Request

 요청에 문제가 있음.

 403 Forbidden

 요청한 내용은 접근 금지됨.

 404 Not Found

 요청한 내용을 찾을 수 없음.

- 100번대는 정보를, 200번대는 성공을, 300번대는 경로 전환400번대는 에러를 의미합니다.

'네트워크' 카테고리의 다른 글

04_P2P(peer to peer)  (0) 2018.03.25
03_쿠키  (0) 2018.03.11
02_1 애플리케이션 계층  (0) 2018.02.11
01_소켓  (0) 2018.02.04
00_서버와 클라이언트  (0) 2017.09.14