웹 개발 101

웹 개발101_Chapter01_개발을 시작하기 전에

강용민 2022. 11. 18. 00:55

배경지식

HTTP

HTTP는 HyperText Transfer Protocol의 약자로, 애플리케이션 레벨의 네트워크 프로토콜이다. Transfer Protocol이란 통신을 하기 위한 규약(Protocol)이라는 뜻이며, HyperText란 다른 문서로 향하는 링크가 있는 텍스트이다.

 

HTTP요청

HTTP 요청에는 송신자의 다양한 정보가 담겨 있다. 주목해야 할 부분은 요청 메서드이다. HTTP 요청에는 GET, POST, PUT, DELETE과 같은 메서드를 지정할 수 있다. 이러한 메서드는 호스트에게 지정한 리소스에 어떤 작업을 하고 싶은지 알려주는 역할을 한다. 하지만 실제 기능은 전적으로 API를 개발하는 개발자에게 달려 있다. 즉, HTTP 메서드는 '이런 기능을 위한 API에 사용하는게 좋다'는 뜻이지 GET 메서드로 지정했으니 마법처럼 리소스가 반환되는 게 아니라는 뜻이다.

 

HTTP 응답

HTTP요청과 비슷하게 HTTP 응답도 여러 가지 정보를 가지고 있다.

  • Status code : 응답 코드이다. 예를 들어  200은 성공적으로 요청을 처리했다는 뜻이다. 이렇게 HTTP 응답코드를 통해 사용자는 요청이 어떻게 처리되었는지 확인할 수 있다.
  • Content-Type : 응답의 미디어 타입을 의미한다. 예를 들어 text/html, text/css 등이 있다.

 

JSON

JSON은 서로 다른 애플리케이션에 데이터를 교환하기 위해 둘 다 이해할 수 있는 형태로 오브젝트를 변환한 형태이다. JSON은 Key/ Value형태로 이뤄져 있다. 한 애플리케이션에서 오브젝트를 JSON 형태의 문자열로 변환한 후, HTTP 요청의 바디 부분에 JSON을 넣어 요청을 전송한다. 그러면 요청을 받은 다른 애플리케이션은 HTTP 요청의 바디 부분에서 JSON을 꺼내 해당 애플리케이션에서 이해할 수 있게 오브젝트를 변환해 사용한다.

 

서버

서버는 프로그램이다. 이 프로그램은 지정된 포트를 열고 클라이언트가 연결할 때까지 무한 대기하며 기다리다 클라이언트가 연결하면 해당 클라이언트 소켓에서 요청을 받아와 수행하고 응답을 작성해 전달한다. 클라이언트에게 요청을 읽어올 때, 또는 응답을 작성할 때 File Transfer Protocol을 사용한다면 FTP 서버가 되는 것이고, HTTP을 사용하면 HTTP 서버가 되는 것이다.

 

정적 웹 서버

정적 웹 서버란 HTTP 서버 중에서도 리소스 파일응ㄹ 반환하는 서버를 의미한다.즉, 서버는 해당 파일에 아무 작업도 하지 않고, 파일을 있는 그대로 반환한다. 이런 정적 웹 서버의 예로 아파치나 Nginx등이 있다.

 

동적 웹서버

동적 웹 서버는 파일을 그대로 반환하지 않는다. 동적 웹서버는 요청을 처리한 후, 처리한 결과에 따라 응답 바디를 재구성하거나 HTML 템플릿 파일에 결과를 대체해 보낸다. 이를 도와주는 프로그램이 서블릿 엔진이다. 아파치 톰캣이 서블릿 엔진에 해당한다.

'웹 개발 101' 카테고리의 다른 글

웹 개발101_Chapter03_프론트엔드 개발  (1) 2022.12.07
웹 개발 101_Chapter02_백엔드 개발  (0) 2022.11.25