웹 서버 프로그램에 대해

노건우·2023년 8월 16일
0
post-thumbnail

CS프로그램

✍️Client, Server모델로 나뉜다.
간단한 구조로 되어있는 구조이고, 대부분 server에서 데이터를 처리하고 클라이언트는 ui를 담당한다.
구조가 간단하여 속도가 좋은 특징이 있으나, 확장성은 조금 떨어진다.

  • CS 장점
    구조가 간단하여 속도가 빠르다.
    대부분 c나 c++언어로 작성되므로 속도가 좋다.

  • 단점
    구조상 확장의 어려움이 있다.
    Client 프로그램을 다운로드받아 pc에 다운받아야 하는 배포의 번거로움이 있다.
    버그를 수정하여도 배포하기 어려움
    특정 os및 하드웨어에 종속적임

소켓 통신

서버와 클라이언트 양방향 연결이 이루어지는 통신으로, 클라이언트도 서버로 요청을 보낼 수 있고 서버도 클라이언트로 요청을 보낼 수 있는 통신이다.

  • 클라이언트와 서버 양쪽에서 서로에게 데이터전달을 하는 방식의 양방향 통신

    보통 스트리밍이나 실시간 채팅등 실시간으로 데이터를 주고받아야 하는 경우 connection을 자주 맺고 끊는 HTTP통신 보다는 소켓 통신이 적합하다.
    소켓 통신은 계속해서 Connection을 들고 있기 때문에 http통신에 비해 많은 리소스가 소모된다.

WEB 프로그램

  • CS환경이 배포가 어렵다는 단점을 보완한 모델
    브라우저만 있으면 어디서든 쉽게 접근 가능

  • web프로그램 장점
    OS와 브라우저의 제품에 상관없이 어디서든 동작 가능
    수정된 부분을 쉽게 배포가 가능함

  • 단점
    성능이 떨어지고 속도가 느림. 화면의 복잡도가 증가하면서 더더욱 성능이 떨어짐
    다양한 기술이 접목되어 관리가 어렵다

HTTP 통신

http란 Hyper Text Transfer Protocol의 약자로 HTML파일을 전송하는 프로토콜이라는 의미를 가진다.

웹브라우저에서 통신이 일어나며, 초기에는 HTML파일을 전송하려는 목적으로 만들어졌으나 현재는 Json, Image파일 등 또한 전송한다.

  • HTTP통신은 클라이언트에서 서버로 요청을 보내고 서버가 응답하는 방식으로 통신이 이루어진다. 응답에는 클라이언트의 요청에 따른 결과를 반환한다.
  • 클라이언트의 요청이 있을 때 서버가 응답하는 방식
    🔚단방향 통신
    필요한 경우에만 서버로 접근하는 콘텐츠 위주의 데이터를 사용할 때 용이하다.

정리✍️
자주 데이터를 주고받는 환경이 아닌 경우 http통신을 통해 받는 것이 유리하다.
자주 데이터를 주고 받아야 하는 환경에서는 소켓통신이 유리하다.
HTTP통신은 사용자가 서버에 요청을 보내는 단방향 통신인 반면, 소켓 통신은 양방향 통신이다.

통신 프로토콜

  • 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고받는 양식과 규칙의 체계이다.
  • 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다.
  • 프로토콜은 형식, 의미론, 그리고 통신의 동기 과정 등을 정의하기는 하지만, 구현되는 방법은 독립적이다.

프로토콜의 예시

  • HTTP : Hyper Text Transfer Protocol
  • HTTPS: Hyper Text Transfer Protocol Secure
  • FTP : File Transfer Protocol
  • SFTP :Secure File Transfer Protocol
  • Telnet : Terminal Network
  • POP3 : Post Office Protocol version3
  • SMTP : Simple Mail Transfer Protocol
  • SSH : Secure shell
  • SSL : Secure Socket Layer
  • SOAP : Simple Object Access Protocol
  • ARP : Adress Resolution Protocol

정적 웹 페이지(static web pages)

  • 정적 웹 페이지는 언제 접속해도 같은 응답을 보내준다.
  • 일단 HTML,CSS,JS파일 등이 서버에 업로드 되면 개발자가 수정하기 전까지 매번 같은 파일을 브라우저에 건네준다.
  • 즉 웹 서버가 정적 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리 과정 없이 클라이언트에게 응답을 보낸다.
  • 회사나 개인의 소개 페이지 정적 웹 페이지의 좋은 예시

동적 웹 페이지(Dynamic web pages)

  • 웹 서버가 동적 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리 과정 이후 클라이언트에게 응답을 보냅니다.
  • 동적 페이지는 방문자와 상호작용하기 때문에 페이지 내용은 그때그때 다르다.
  • 댓글, 날씨, 주가 정보 등과 같이 정보 변경이 잦은 곳에 많이 사용된다.
  • 동적 페이지란 요청에 대해서 각각 다른 내용을 보여준다.
    사용자(클라이언트)가 URL을 통해 서버에 웹 페이지를 요청했을 때, 서버는 사용자에게 맞는 HTML문서를 생성하여 사용자에게 응답하게 된다.

웹 호스팅이란

  • 고객들이 만든 홈페이지를 올려놓을 인터넷상의 공간을 임대해 주는 서비스
  • 내가 만든 홈페이지를 LOCAL PC에만 저장해 놓으면 인터넷상에서 누구나 볼 수는 없다.
  • 이때 필요한 서비스가 웹 호스팅 서비스이다.
  • 웹 호스팅은 다세대가 거주하는 빌라(웹서버)의방 한칸(홈페이지가 들어갈 공간)을 임대하여 사용하는 서비스라고 보면 된다.
    도메인이란
  • 도메인은 이름이다. 건물을 짓는다고 치면 건물명에 해당한다.
  • 찾고자 하는 사이트 주소 : NAVER.COM
  • 실제 주소 : 125.209.222.142
  • 가고자 하는 곳: 롯데타워
    -실제 주소: 서울특별시 송파구 잠실 6동 올림픽로 300

인터넷 주소의 체계
HTTP:// www.facebook.com/news/index.php

  • 프로토콜 : http://
    -도메인: www.facebook.com
    -포트: 80
    -요청: news/index.php

포트

동일한 포트가 가진 프로그램이 동시에 실행될 수는 없다.

  • 모든 컴퓨터는 0부터~65535의 포트 번호를 가지고 있다.
  • 이 포트번호를 통해 통신이 진행될 수 있으며 기본적으로 모든 포트 번호는 차단되어 있다.
  • 포트를 차단하고, 포트를 차단하는 역할을 하는 프로그램이 방화벽이다.
profile
초보 개발자 이야기

1개의 댓글

comment-user-thumbnail
2023년 8월 16일

좋은 정보 감사합니다

답글 달기