본문 바로가기

03/31 WEB에 관하여

Web은 HTTP 프로토콜을 사용하여 URL에서 HTML로 작성된 문서이다.

 

Web server 는 사용자가 요청하는 웹 페이지나 프로그램을 실행하여 해당 파일이나 그 결과를 사용자에게 제공하는

역할을 수행한다.

 

정적페이지와 동적페이지의 차이

 

정적페이지

서버에 저장된 파일(HTML,IMG 등...)이 그대로 전달되는 페이지

서버는 사용자가 요청한 웹 페이지를 내보낸다 -> 사용자는 고정된 웹페이지를 보게 된다.

 

동적페이지

서버 측에 존재하는 데이터들을 스크립트(php,jsp등...)에 의하여 처리 후 생성되어 전달되는 페이지

서버는 사용자의 요청을 해석 후 데이터를 가공하여 웹 페이지를 내보낸다 -> 사용자는 요청에따른 페이지를 보게 된다.

 

웹서비스의 구조

 

1. WEB SERVER

클라이언트의 요청(request)을 받아 정적 콘텐츠(html,css)를 처리하는 시스템

종류: Apache, IIS 등

2. WEB APPLICATION SERVER 

다양한동적 콘텐츠를 처리한다. 또한 DB의 조회,생성 등의 작업이 가능하다.

HTTP를 통해 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어이다.

종류: Tomcat, jBoss 등

3. DB

DataBase의 약자로 데이터 저장소

관계형 DB(RDBMS) : MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database

비관계형 DB(NOSQL): mongoDB, Redis 등

 

요청에 따른 분류

1. GET

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

게시판의 게시물을 조회할때 사용이 가능하다. GET을 통한 요청은 URL 주소 끝에 파라미터로 포함되어

전송되며, 이 부분을 쿼리 스트링이라고 한다. 요청에 길이 제한이 존재한다.

또한 GET요청은 파라미터가 노출되어 보안에 취약하다.

ex)127.0.0.1/exemple?name1=value1&name2=value2

 

2. POST

POST는 클라이언트에서 서버로 리소스를 생성하거나 업데이트를 하기 위하여 데이터를 보낼 때 사용되는 메서드이다.

게시판의 게시글을 작성하는 작업 등에 사용된다. POST는 전송할 데이터를 HTTP메시지 body부분에 담아서 서버로 전송한다. 길이 제한이 존재하지 않아 큰 데이터를 보낼때 사용한다. GET과 같이 데이터가 외부적으로 드러나지는 않는다.

다만 암호화하지 않으면 보안에 취약한것은 마찬가지이다.

 

 

그 외 PUT과 DELETE는 다음에 다뤄보려고 한다.

 

상태코드

  • 1xx (정보): 요청을 받았으며 프로세스를 계속한다
  • 2xx (성공): 요청을 성공적으로 받았으며 인식했고 수용하였다
  • 3xx (리다이렉션): 요청 완료를 위해 추가 작업 조치가 필요하다
  • 4xx (클라이언트 오류): 요청의 문법이 잘못되었거나 요청을 처리할 수 없다
  • 5xx (서버 오류): 서버가 명백히 유효한 요청에 대해 충족을 실패했다

 

자세한 내용은 https://ko.wikipedia.org/wiki/HTTP_%EC%83%81%ED%83%9C_%EC%BD%94%EB%93%9C 참조

 

프록시에 관하여

프록시 서버는 장치와 인터넷 웹 사이트 간의 중개자 역할을 할 수 있다. 프록시 서버에 연결되면 모든 발신 및 수신 데이터가 프록시 서버를 통과한다. 현재 IP가 프록시 서버의 IP로 대체되어, 모든 온라인 시스템이 장치가 아닌 서버에서 연결하고 있다고 생각하게 된다.

즉 프록시 서버를 이용하면 중간 서버 역활을 담당하므로 사용자가 요청한 서버로 이동하기 전 프록시 서버로 우선 이동한 후 요청한 서버로 이동하기때문에 IP가 대체된다.

Client -> Proxy -> Internet