[Web] 웹 생태계

So'sCode·2024년 3월 5일
0

🌐 웹의 이해

인터넷

  • 전 세계의 모든 컴퓨터를 하나의 통신망 안에서 연결한다 라는 의미를 가진 International Network의 약자
    우리는 모두 연결되어있다.

  • 웹이란?

    • World Wide Web(WWW)이란, 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 공간.
    • 간단하게 WWW / W3 우리는 이 모든 것을 줄여 Web이라고 부릅니다.
    • HTML 형식을 사용하는 HTTP 서비스입니다.
  • 웹의 특징

    • 정보를 하이퍼 텍스트 형식으로 표현하여, 하이퍼텍스트(링크)를 따라 이동하여 다양한 문서/링크의 정보를 제공한다.
    • 하이퍼 텍스트란...?
      • 단순히 글자가 아닌 그 이상의 기능을 가진 텍스트

웹의 구조

클라이언트와 서버

  • 클라이언트 : 서비스를 이용하는 ( 요청하는 ) 컴퓨터
  • 서버 : 서비스를 제공하는 컴퓨터

프로토콜
클라이언트 - 서버 사이의 약속

  • 서로 정보를 주고 받을 때 지켜야하는 약속이 존재한다.
  • 반드시 이 약속을 지켜 통신해야하며, 이 약속을 프로토콜이라고 한다.

웹을 사용하는 방법

  • 인터넷으로 연결된 클라이언트와 서버는 웹프로토콜인 HTTP를 사용하여 데이터를 주고 받는다.

HTTP란?

HTTP는 웹을 이해하기 위해 필수적으로 알아야하는 프토로콜입니다.
HTTP는 TCP/IP에서 응용 계층에 해당합니다.

HTTP의 특징

  • 요청과 응답(메시지를 주고받음)에 의한 통신 구조
  • 클라이언트의 요청에 의한 통신 시작
  • 상태가 없는 프로토콜

❓상태가 없..는...? 이게 무슨말이야?
이전 상태들을 저장하지 않는 다는 것을 의미합니다.
이러한 웹의 한계를 극복하기 위하여 쿠키나 세션 등의 기술이 사용됩니다.

HTTP의 순서를 그림으로 나타내면 위와 같은데요
이를 말로 정리해보면 이렇습니다.
1. 클라이언트(사용자)가 브라우저 입력창에 http://naver.com을 입력한다.
2. 브라우저는 request message를 전송
3. 서버는 URL을 서버 내의 파일 또는 프로그램 등으로 맵핑
4. 서버가 response message 전송
5. 브라우저는 전송 받은 메시지를 변환하여 클라이언트에게 보여준다.

웹서버는 이와 같이 클라이언트(사용자)로부터 메시지를 받으면 요청된 URL을 통해 서버 경로에 해당하는 웹 문서를 찾습니다.
문서를 요청하는 방법은 여러가지가 있는데요. 가장 대표적으로 알려진 것은 GET POST 두가지가 있는데요 이 두가지 외에도 많은 것이 있습니다.

  • GET : 서버에 자원을 요청. 요청한 내용이 URL에 그대로 보이고, 데이터는 4,096으로 제한
  • POST : 서버에 데이터를 전송. 요청한 내용이 URL에 보이지 않는다.
  • HEAD : 헤더의 정보를 얻는다.
  • TRACE : Loopback 테스트
  • OPTIONS : 응답 가능한 메서드들을 요청한다.
  • PUT : 서버에 자원을 생성한다.
  • DELETE : 서버에서 자원을 삭제한다.

이렇게 여러가지 중 PUT / DELETE같은 경우 서버에서 자원에 직접 접근할 수 있음을 알 수 있습니다.
즉 이를 악용하여 악성코드를 업로드 한다던지 중요 자원을 맘대로 삭제할 수 있습니다.

따라서 PUT / DELETE와 같은경우는 보안상 치명적입니다.
또한, TRACE와 OPTION은 서버의 정보를 얻을 수 있습니다. 즉, 서버의 보안상 취약한 점을 파악할 수 있기에 이 두가지도 보안상 치명적입니다.

서버와 클라이언트가 주고 - 받은 메시지를 확인하기 위해
원하시는 아무 웹사이트에 들어가신 후 F12를 누르시고, 네트워크로 이동해서 확인해봅시다.

저는 제 velog를 한번 봤는데요
위에서부터 차근차근 살펴보면

  • Request URL : 요청 보낸 URL입니다.
  • Request Method: POST
    post 방식으로 요청을 보냈습니다.
  • Status Code: 204
    상태코드는 서버가 보내는 요청에 대한 응답 상태를 의미합니다.

상태코드 정리
1XX - 일반적인 정보
2XX - 정상적으로 처리되었음을 알림
3XX - 리다이렉션
4XX - 클라이언트 에러 ( 프론트엔드에서 정보를 넘겨줄 때 get/post를 잘못 썼을 가능성이 큼 )
5XX - 서버 에러를 의미

profile
이왕하는거미루지말고하자.

0개의 댓글