본문 바로가기

책책책/프로가 되기 위한 웹기술 입문

📋 프로가 되기 위한 웹기술 입문 1-3

2021-04-14글

1. 웹 애플리케이션이란 무엇인가?


  데스크톱 애플리케이션 웹 애플리케이션
처리 주체 자신의 PC 서버
화면 표시 운영체제 상에서 표시 웹 브라우저에서 표시
설치 필요 불필요

2. 웹은 어떻게 발전했는가?


WWW 등장의 배경

이메일이나 파일 전송 기술보다 더 편리하게 정보를 공유하자!
정보를 텍스트파일만으로 표현하게 만드는 것이 HTTP이다.
네트워크 상에서 링크된 하이퍼 링크의 연결을 WWW라고 부르기 시작했다.
WWW에서는 웹 서버가 네트워크 상에 공개하는 하이퍼 텍스트를 축적하고 웹 클라이언트 요청에 따라 필요한 HTML 파일을 건네준다.

텍스트 중심으로 표현되던 웹 페이지를 문자와 그림과 함께 표현할 수 있게 만든 것이 NCSA 모자이크라는 웹 브라우저이다.

웹에서 클라이언트와 서버의 역할 분담

다양한 콘텐츠를 불특정 다수에게 공개하려면 콘텐츠를 한 곳에 관리해야한다.
WWW에서는 사람들의 PC를 웹 클라이언트로, 멀리 떨어져 있는 웹 서버와 웹 클라이언트 사이를 인터넷으로 연결한다.

  • 클라이언트 : 웹 클라이언트라는 컴퓨터 상에서 웹 브라우저라는 소프트웨어가 작동
  • 서버 : 우베 서버라는 컴퓨터 상에서 웹 서버라는 소프트웨어가 작동

URL의 역할과 구조

콘텐츠를 고유하게 저장하기 위한 구조.
스킴, 호스트명, 경로명으로 구성되어 있다.

HTTP의 역할

웹서버와 웹 클라이언트가 통신하기 위한 규약.4

CGI 등장의 배경과 역할

동적인 페이지 요구에 따라 CGI가 등장하고,
웹 서버가 클라이언트로부터 받은 요청을 웹 서버상에서 작동하는 프로그램을 보낸다.

서블릿 등장의 배경

CGI를 이용한 웹 애플리케이션은 개발 언어의 문제와, 성능 문제를 가지고 있다.
웹 브라우저에서 요청이 도착할 때마다 CGI를 통해 프로세스를 기동하여 성능이 저하되었다.

CGI와 같은 개념이지만 콘텐츠를 생성하는 언어가 자바이며 객체지향을 지원하기 떄문에 대규모 애플리케이션 개발에 적합하다.
또한 웹서버와 같은 프로세스 속에서 콘텐츠를 생성하는 프로그램이 작동하기 때문에 CGI 처럼 새로운 프로세스를 매번 기동할 필요가 없다.

자바는 JVM 덕분에 한 프로그램을 운영체제와 상관없이 어디에서나 동작시킬 수 있다.

CGI는 프로세스를 기동시켜 동적 컨텐츠를 만들어내고, 서블릿은 스레드를 실행시킨다.

CGI와 서블릿 그리고 톰캣 다음 글을 참고하자.

JSP 등장의 배경

서블릿을 통해 출력되는 HTML을 상상하기 어려웠다.

JSP는 서블릿과 달리 출력되는 HTML에 거의 근접한 형태이다.
JSP 내부에 적힌 자바 프로그램을 스크립틀릿이라고 한다.

서블릿은 자바 코드에 HTML을 넣고, JSP는 HTML에 자바 코드를 넣는다.

웹 애플리케이션 프레임워크의 필요성

서블릿이나 JSP 만으로 웹 애플리케이션을 만드려면 코드량이 굉장히 늘어난다.

프레임워크는 재사용할 수 있는 부분을 늘려 애플리케이션 개발을 용이하게 하는 것이다.
이로 인해 애플리케이션을 단기간에 개발할 수 있다.

3. HTTP를 이해하자


HTTP 요청의 구조

요청 라인

  • 메서드 : 요청의 종류
  • URL : 무엇을 원하는가
  • HTTP 버전 : 버전에 따라 이용할 수 있는 메서드의 종류와 요청 헤더의 종류가 달라지므로 어떤 버전에 따른 요청인지 나타냄

대표적인 헤더

  • Accept : 웹 클라이언트가 받을 수 있는 데이터의 종류
  • Accept-Language : 웹 클라이언트가 받을 수 있는 자연 언어의 종류
  • User-Agent : 웹 브라우저의 종류와 버전
  • Host : 요청을 보낸 곳의 호스트명과 포트 번호

HTTP는 한 요청에 한 리소스만 취득할 수 있다.

HTTP 응답의 구조

  • 상태라인 : HTTP 버전, 상태 코드, 응답 구분
  • 메시지 헤더 : 응답에 관한 부가적인 정보
  • 메시지 본문 : HTML 파일 내용이 그대로 담김

IP 주소

인터넷에 접속된 모든 컴퓨터는 IP 주소라는 숫자로 식별된다.
하지만 인간이 IP 주소를 기억하기에는 어렵다.

IP 주소는 전세계에 하나만 있어야 한다.
이 IP 주소는 대량의 IP 주소를 확보해 놓은 인터넷 서비스 프로바이더(ISP)로부터 할당받는다.

호스트명을 IP 주소로 변환하는 시스템(DNS)

도메인명과 IP 주소의 대응표를 가진 컴퓨터를 인터넷상에 배치하여 도메인명에 대응하는 IP 주소를 가르쳐준다.
도메인명에 대응하는 DNS 서버는 분산 관리 되고 있다.

GET 요청과 POST 요청의 차이

  GET POST
매개변수 저장 장소 URL BODY
보안 낮음 (URL이 노출됨) 비교적 높음 (서버 로그에 남지 않음)
매개변수의 길이 255 문자 이내로 제한될 가능성 제한 없음
매개변수의 보존 재현 용이 어려움

퍼센트 인코딩을 이용한 표현

한글로 매개변수를 전달할 경우, 문자 코드로 나타낸 16진수 값 각 앞머리에 %를 붙여 표시하는 퍼센트 인코딩을 사용한다.