ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP란? WWW란?
    컴퓨터 기초/네트워크 2020. 10. 26. 05:53

     

    흔히 우리가 인터넷을 할 때 특정 홈페이지를 찾아가기 위해서 위와 같이 주소창에 주소를 친다.

     

    하지만 정작 우리가 흔히 보는 이 주소의 뜻은 잘 모르고 그동안 사용해왔다.

     

    그냥 주소로서 인식할 뿐이지 앞의 'http'는 무엇인지 'www'는 무엇인지 몰랐다.

     

    하지만 서버 관련 공부를 하기 전에 기초적인 지식으로 알고 가는 것은 나쁘지 않다고 생각한다.

     

    그래서 정리한다.

    HTTP란?

    'HTTP'란 'HyperText Transfer Protocol'의 약자로 하이퍼 텍스트를 교환,전송을 위한 통신 규약이다.

     

    예를 들어 각각 다른 회사가 만든 컴퓨터 A와 컴퓨터 B가 있다고 가정해보자.

     

    이 두 컴퓨터는 사양도 다르고 부품도 다르고 심지어 안에 들어가있는 프로그램마저 다르다.

     

    이러한 상황에서 두 컴퓨터를 통신으로 연결하고 싶다면 어떻게 해야할까?

     

    이러한 의문을 가지고 태어난 것이 바로 'HTTP'다.

     

    'HTTP'는 다양한 환경에서 여러 기기가 서로 통신을 주고 받을 수 있게 만든 일종의 규칙이다.

     

    예를 들어 내가 이런 데이터를 요청하면 너는 이런 데이터를 반환하라는 식의 통신 규칙인 것이다.

     

    이런 규칙을 따름으로써 기기와 서비스를 만든 회사가 달라도 서로 데이터를 주고 받을 수 있는 것이다.

    HTTP의 구조

    'HTTP'는 클라이언트와 서버 사이에 이뤄지는 요청(request)와 응답(response)로 이뤄진다.

     

    예를 들어 특정 링크를 눌러서 홈페이지를 접속한다고 가정해보자.

     

    사용자(클라이언트)는 링크를 눌러 서버에 홈페이지 정보를 요청(Request)하며 통신을 시작한다.

     

    반면 서버는 사용자의 요청에 따라 홈페이지 정보를 응답(Response)하고 통신을 종료한다.

     

    이렇게 홈페이지 정보를 전달받은 사용자의 브라우저는 홈페이지 정보를 화면에 띄운다.

     

    이게 HTTP통신 과정의 시작과 끝이다.

     

    단순해 보이지만, 우리가 이용하는 인터넷은 위와 같은 과정을 거친 무수한 요청과 응답으로 이뤄진다.

     

    그리고 우리가 홈페이지 주소를 입력할 때 쓰는 'http'는 'http' 프로토콜을 이용해 정보를 교환한단 뜻이다.

    HTTP와 get과 post

    이러한 'http'를 통해 클라이언트가 서버 측에 요청을 보낼 때 사용하는 방식이 크게 2가지다.

     

    하나는 'get' 방식이고 또 하나는 'post' 방식이다.

     

    사실 이 두가지 방식에 대해선 대체로 대충 이렇게 배우고 넘어가는 것 같다.

     

    - 'get'은 url에 데이터를 붙여서 서버로 데이터를 보내고 정보가 겉으로 드러난다.

    - 'post' 방식은 데이터가 (body 안에) 숨겨져서 발송된다.

    - url의 크기가 제한적이라 'get'은 보낼 수 있는 정보량의 한계가 있다.

    - 보안을 위해서는 'post'를 쓰는 것이 좋다.

     

    이렇게만 보면 'get'은 왜 쓰나 싶다.

     

    보낼 수 있는 데이터도 한계가 있고 보안에도 상대적으로 취약하다고 한다.

     

    근데 왜 사용하는 걸까? 실제로는 둘의 용도에는 차이가 있다.

     

    일반적으로 'get'은 DB에서 자료를 가져와서 읽을 때 주로 사용한다.

     

    반면 'post'는 서버의 DB 값이나 상태를 바꾸는 즉 쓰기, 수정을 할 때 주로 사용한다.

     

    즉 정리하자면 다음과 같다.

     

    'get'방식은 예를 들어 동영상, 이미지, 텍스트를 읽어오는 등 서버에 저장된 데이터를 가져오는데 쓴다.

     

    'post'방식은 게시판에 글을 쓴다든지, 회원 가입을 한다든지 하는 DB 영향을 줄때 쓴다.

     

    이렇게 생각하면 둘을 구분하는 의미를 알 수 있고 표준에 맞게 사용이 가능하다.

     

    'get' 방식을 읽어오는 용도의 요청을 할 때 쓰는 중요한 이유가 있다.

     

    바로 링크를 전달할 때다.

     

    만약 'post'방식으로 자료를 읽어오면 자료의 링크가 전부 숨겨진다.

     

    그러면 링크로 타인에게 자료를 전달하려고해도 이것이 불가능해진다.

    HTTP 응답(response) 코드

    'HTTP'는 앞서 말했듯 사용자가 요청(request)하면 응답(response)한다.

     

    그리고 이러한 응답에는 사용자가 요청한 자료를 응답하는 것 이외에도 코드를 반환한다.

     

    이 코드를 통해 자료가 제대로 불러왔는지 오류가 났는지 등 여부의 확인이 가능하다.

     

    MDN 사이트에서 해당 내용을 전부 확인할 수 있고 여기선 일부만 소개한다.

     

    - 200 OK: 클라이언트의 성공적으로 처리됐을 때를 의미함.

    - 302 Found: 요청된 리소스의 URI가 일시적으로 변경됐음을 의미함.

    - 400 Bad Request: 요청이 잘못되었을 때를 나타냄.

    - 401 Unauthorized: 인증이 필요한 리소스에 인증없이 접근할 때 발생.

    - 403 Forbidden: 서버까지 클라이언트 요청이 도착했으나 접근 권한이 없음.

    - 404 Not Found: 서버가 요청된 리소스를 찾을 수 없음. 가장 흔한 오류.

    - 408 Request Timeout: 요청 중 시간이 초과되었을 때 사용.

    - 500 Internal Server Error: 서버 문제로 인한 오류. 보통은 서버측 오류임.

    - 502 Bad Gateway: 게이트웨이가 연결된 서버에서 잘못된 응답을 받았을 때. 보통 서버 폭주시 발생.

    HTTPS란?

    최근에는 많은 사이트들이 앞에 'HTTP'가 아닌 'HTTPS'라는 글자를 앞에 붙이기 시작했다.

     

    이는 'HyperText Transfer Protocol over Secure Socket Layer'의 약자다.

     

    간단히 말하면 통신 보안이 강화된 'HTTP'라고 보면 된다.

     

    일반적으로 'SSL' 또는 'TSL' 프로토콜을 이용해 데이터를 암호화한다.

     

    흔히 쇼핑몰이나 은행 등 보안이 필요한 사이트에서만 사용했다.

     

    하지만 최근에는 대부분 디폴트 수준으로 많이 지원한다.

    WWW란?

    'Wolrd Wide Web'의 약자로 인터넷에 연결된 컴퓨터를 이용해 사람들과 정보를

     

    공유할 수 있는 공간을 말한다.

     

    위에서 말한 'HTTP'를 기반으로 'HTML'로 작성된 하이퍼 텍스트를 웹브라우저를 통해 읽을 수 있게 되있다.

     

    보통 인터넷과 동일하게 보는 경우가 있지만 엄밀히 말하면 인터넷보다 작은 개념이다.

    '컴퓨터 기초 > 네트워크' 카테고리의 다른 글

    HTTP의 특징과 메시지 주고 받는 방법(헤더와 바디)  (0) 2020.11.25
    WEB과 WAS  (0) 2020.10.22
Designed by Tistory.