본문 바로가기
웹 풀스택 스터디(뉴렉처-학원)--> 이거 꼭 보세요/프론트엔드(뉴렉처)

03. 웹 문서와 웹서버의 이해

by 백엔드개발자0107 2021. 8. 21.

자 웹서버와 웹 문서가 있다면, 이들은 어떤 형태로 존재할까?

 

문서를 가지고 있으면서 문서를 제공하는 쪽을 웹서버라고 한다.

 

웹서버는 수많은 웹문서가 있다.

 

이때 브라우저에서 웹서버에게 무언가를 찾으라고 요청할떄

 

웹서버에서 이용하는 특정 브라우저가 있다.

 

이 서버의 주소가 en.wikipedia.org 라고 한다면, 

 

이 서버에서 요청이 왔을때 브라우저에서 뒤질수 있는 특정 디렉토리를  정의해놓고

 

걔를 우리는 웹의 홈 디렉토리라고 한다.

 

예를 들어 

 

http://en.wikipedia.org/wiki/CERN 이라는 주소가 있다고 가정하자.

 

즉,

브라우저 ->  서버

                 (GET 요청)-request

서버        ->  브라우저

                 (GET 응답)-response

 

그렇다면 get과 post (요청 및  응답 방식)은 무엇일까?

 


 

GET 이란?


 GET 은 클라이언트에서 서버로 어떠한 리소스로 부터 정보를 요청하기 위해 사용되는 메서드이다. 

예를들면 게시판의 게시물을 조회할 때 쓸 수 있다.

GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어 전송되며, 이 부분을 쿼리 스트링 (query string) 이라고 부른다.

방식은 URL 끝에 " ? " 를 붙이고 그다음 변수명1=값1&변수명2=값2... 형식으로 이어 붙이면 된다.

예를들어 다음과 같은 방식이다. 

www.example.com/show?name1=value1&name2=value2

서버에서는 name1 과 name2 라는 파라미터 명으로 각각 value1 과 value2 의 파라미터 값을 전달 받을 수 있다.

 

 

 

GET의 특징


  • GET 요청은 캐시가 가능하다. 
  •  : GET을 통해 서버에 리소스를 요청할 때 웹 캐시가 요청을 가로채 서버로부터 리소스를 다시 다운로드하는 대신 리소스의 복사본을 반환한다. HTTP 헤더에서 cache-control 헤더를 통해 캐시 옵션을 지정할 수 있다.

  • GET 요청은 브라우저 히스토리에 남는다.

  • GET 요청은 북마크 될 수 있다.

  • GET 요청은 길이 제한이 있다.
  •  : GET 요청의 길이 제한은 표준이 따로 있는건 아니고 브라우저마다 제한이 다르다고 한다. 

  • GET 요청은 중요한 정보를 다루면 안된다. ( 보안 )
  •  : GET 요청은 파라미터에 다 노출되어 버리기 때문에 최소한의 보안 의식이라 생각하자.

  • GET은 데이터를 요청할때만 사용 된다.

라고 퍼왔다..

 

그리고 post는

 


POST 란?


 POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트하기 위해 데이터를 보낼 때 사용 되는 메서드다. 예를들면 게시판에 게시글을 작성하는 작업 등을 할 때 사용할 된다.

POST는 전송할 데이터를 HTTP 메시지 body 부분에 담아서 서버로 보낸다. ( body 의 타입은 Content-Type 헤더에 따라 결정 된다.)

GET에서 URL 의 파라미터로 보냈던 name1=value1&name2=value2 가 body에 담겨 보내진다 생각하면 된다.

POST 로 데이터를 전송할 때 길이 제한이 따로 없어 용량이 큰 데이터를 보낼 때 사용하거나 GET처럼 데이터가 외부적으로 드러나는건 아니라서 보안이 필요한 부분에 많이 사용된다. 

( 하지만 데이터를 암호화하지 않으면 body의 데이터도 결국 볼 수 있는건 똑같다. )

POST를 통한 데이터 전송은 보통 HTML form 을 통해 서버로 전송된다. 

 

 

 

POST의 특징


  • POST 요청은 캐시되지 않는다.

  • POST 요청은 브라우저 히스토리에 남지 않는다.

  • POST 요청은 북마크 되지 않는다.

  • POST 요청은 데이터 길이에 제한이 없다.

아무래도 GET보다는 POST가 보안이 조금더 강하다고 생각하면 쉬울듯 하다.