ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 프로토콜의 이해
    Programming/BackEnd 2020. 4. 25. 18:23

    HTTP(Hyper Text Transfer Protocol)의 이해

    사람과 사람이 전화 통화를 하기 위해서도 몇 가지 규약이 필요합니다.

    서로 알아들을 수 있는 말을 사용해야 하며, 한쪽이 말할 때 다른 쪽에서는 들어야 합니다.

    또한, 전화 연결이 끊어지면 더 대화를 할 수가 없습니다.

    웹 브라우저(클라이언트)와 웹 서버(서버) 간에도 서로 통신하기 위해서는 규약이 필요합니다.

    이때 필요한 규약이 HTTP입니다.

    - HTTP : 웹 브라우저와 웹 서버 간에 서로 통신을 하기 위한 규약.

    서버와 클라이언트(웹브라우저)가 데이터를 주고받기 위한 프로토콜

    무상태(Stateless) 프로토콜

    연결 -> 요청 -> 응답 -> 연결해제

    응답을 한 후에는 연결을 끊어버리기 때문에, 클라이언트의 이전 상황을 알 수가 없다.

    - 이러한 특징을 무상태(Stateless)라고 말한다.

    - 이러한 특징 때문에 정보를 유지하기 위해서 Cookie와 같은 기술이 등장하게 되었다.

    IP주소=>집주소 하나의 컴퓨터에는 하나의 IP주소(공유기주소)

    PORT=>방 하나(공유기)의 집에는 여러 개의 방(여러 대의 컴퓨터)이 있는데, 이를 포트번호라고 생각해도됨.

    서버(각 컴퓨터)는 각각의 방(포트번호)을 하나씩 차지 해야 함.

    하나의 방에 여러개의 서버가 존재할 수 없다. = 하나의 포트를 여러 대의 컴퓨터가 사용할 수 없다.

    하나의 물리적 컴퓨터에는 여러개의 서버가 동작할 수 있는데, 각각의 서버는 포트값이 서로 다르게 동작해야한다.


    HTTP의 기본 포트값 80

    1. 클라이언트와 서버를 연결

    2. 클라이언트가 서버에 요청

    3. 서버가 응답

    4. 연결해제 stateless

    단, 데이터를 요청하고 응답받을 때 정해진 규약이 존재한다.

    요청 데이터 포맷과 응답데이터 포맷을 따라야함

    HTTP (Hypertext Transfer Protocol)

    요청 메서드 : GET, PUT, POST, PUSH, OPTIONS 등의 요청 방식이 온다.

    요청 URI : 요청하는 자원의 위치를 명시한다.

    HTTP 프로토콜 버전 : 웹 브라우저가 사용하는 프로토콜 버전이다.

    첫번째 줄의 요청메소드는 서버에게 요청의 종류를 알려주기 위해서 사용됩니다.

    각각의 메소드 이름은 다음과 같은 의미를 가집니다.

    참고로 최초의 웹 서버는 GET방식만 지원해줬습니다.

    GET : 정보를 요청하기 위해서 사용한다. (SELECT)

    POST : 정보를 밀어넣기 위해서 사용한다. (INSERT)

    PUT : 정보를 업데이트하기 위해서 사용한다. (UPDATE)

    DELETE : 정보를 삭제하기 위해서 사용한다. (DELETE)

    HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용한다.

    OPTIONS : 웹서버가 지원하는 메서드의 종류를 요청한다.

    TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용한다.


    Web browser 웹브라우저

    • 웹 정보를 검색하기 위한 프로그램

    • 하이퍼텍스트의 구조뿐만 아니라 각종 언어의 문서들을 검색할 수 있음

    • 브라우저의 종류 : 마이크로소프트사의 익스플로러, 구글 사의 크롬, 모질라 사의 파이어 폭스, 애플 사의 사파리, 유럽의 오페라 등

    웹 서버의 포트번호 : 80

    URL : Urniform Resource Locator <-= 웹서버를 지칭

    프로토콜://호스트:port/경로

    "https://blog.naver.com:80/g_sftdvp?Redirect=Write"

    프로토콜: https

    blog.naver.com : 도메인 이름. 어떤 웹 서버가 요구되는 것인 지. IP주소 입력가능

    :80 : 포트번호

    /g_sftdvp: 웹서버에서 자원에 대한 경로

    ?Redirect=Write : 웹서버에 제공하는 추가 파라미터입니다.

    ?key1=value1&key2=value2 는 웹서버에 제공하는 추가 파라미터입니다. 이 파라미터들은 & 기호로 구분된 키/값으로 짝을 이룬 리스트입니다. 웹 서버는 자원을 반환하기 전에 추가적인 작업을 위해 이런 파라미터들을 사용할 수 있습니다. 각각의 웹서버는 파라미터들을 언급하는 자신의 규칙을 갖고 있습니다. 그리고, 특정한 웹서버가 파라미터를 다루는 지 알기 위한 유일한 방법은 웹서버 소유자에게 묻는 것입니다

     웹 서비스의 동작 원리

    ① 웹 브라우저에 URL 주소를 입력

    ② 클라이언트는 서버 호스트 이름을 DNS 서버에 전송, 웹 서버의 IP 주소 얻음

    ③ IP 주소와 Well-known 포트 80번을 사용하여 웹 서버와 TCP 연결을 시도

    ④ TCP 연결이 설정되고 클라이언트가 서버에 GET 명령을 전송

    ⑤ 서버가 요청한 웹 문서를 웹 브라우저에 회신

    ⑥ 둘 사이의 TCP 연결을 해제

    ⑦ 웹 브라우저는 해당 파일의 내용을 사용자가 볼 수 있게 화면에 표시

     웹 브라우저의 구조

    • 구성요소 : 제어기(controller), 클라이언트 프로토콜, 해석기(interpreter)로 구분

    – 제어기 : 입력장치부터 입력을 받아 클라이언트 프로그램을 사용하여 웹 문서에 접근

    – 클라이언트 프로토콜 : FTP, TELNET, HTTP 등이 있음

    – 해석기 : HTML, 자바(java), 혹은 자바스크립트 등이 사용됨

    • 제작한 홈페이지를 다른 사용자가 검색하기 위해서는 웹 서비스 제공이 가능한 웹 서버가 필요

    • 웹 브라우저를 이용해 검색하고자 하는 웹 사이트를 지정하면 웹 서버의 정보가 다시 웹 브라우저로 전송

    ‘하이퍼텍스트’ : 인터넷 사용자(클라이언트)가 필요한 정보의 자유로운 검색을 가능하도록 해주는 텍스트의 전개방식

    ‘HTTP’ : 하이퍼텍스트 방식의 정보를 교환하기 위한 하나의 규칙

    • 웹 서버와 클라이언트가 상호 데이터통신을 하기 위해 사용하는 하이퍼텍스트 전송 규약 

    HTTP 처리과정 : ‘요구(request)’ 메시지와 ‘응답(response)’ 메시지로 이루어짐

    • 웹 클라이언트가 요구 메시지를 보내면 HTTP 처리과정이 개시되고, 이에 대한 응답으로 서버가 응답 메시지를 보냄

     

     

    'Programming > BackEnd' 카테고리의 다른 글

    AWS EC2 / WinSCP / Putty / nginx,PHP,MySQL  (0) 2020.04.26
    포트포워딩(PortFowarding)이란?  (0) 2020.04.25
    1. 클라이언트 - 서버 구조의 이해  (0) 2020.04.25
    서버 개발 프레임워크  (0) 2020.04.22
    AWS 개념  (0) 2020.04.22
Designed by Tistory.