ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 기초
    CS 2023. 11. 11. 18:13

    HTTP란 

    HyperText Transfer Protocol의 약자로 웹에서 클라이언트와 서버간의 컨텐츠(HTML/JavaScript/Css/이미지 등)를 주고 받기위해 서로 알아볼 수 있는 메세지이다.

    HTML과 같은 Text파일뿐만 아니라 이미지 오디오 동영상과 같은 다양한 멀티미디어 파일을 전송하는 프로토콜이다.

    즉, HTTP는 클라이언트의 Request와 서버의 Response를 위한 메세지이다.

     

    프로토콜(protcol) : 컴퓨터 네트워크나 통신 시스템에서 통신 간의 규칙이나 규약을 의미한다. 프로토콜은 특정한 통신 형태나 서비스의 표준화된 방법을 정의하며, 이는 효율적이고 정확한 데이터 교환을 가능케 한다.

        ex) TCP/IP(Transmission Control Protocol/ Internet Protocol) : 컴퓨터 간의 통신을 지원하기 위한 핵심 프로토콜

        HTTP(HyperText Transfer Protocol) : 웹 브라우징을 위한 프로토콜
        SMTP(Simple Mail Trasnfer Protocol) : 이메일 전송을 위한 프로토콜

     

    웹브라우저의 개발자도구(크롬은 F12)에서는 Network탭을 통해서 웹브라우저와 웹서버가 어떻게 통신하고 있는지 알 수 있다.

    실제 크롬 개발자도구 Network탭

    Response Headers는 서버가 웹브라우저에게 응답한 정보를 볼 수 있다.

    맨 첫줄은 HTTP/1.1 방식으로 200(성공적으로 데이터를 가져왔다!) 반환 이라는 뜻

     

    Request Headers는 웹브라우저가 서버에게 요청한 정보를 보여준다.

    Get방식을 통해서 1.html을 요청, 내가 사용하는 방법 HTTP/1.1

    주소는 localhost:8080 이라는 정보를 보냄  

     

    즉, 웹브라우저는 사용자가 요청한 정보를 Request Headers안에 넣어서 웹서버에게 대신 물어보는 역할을 한다. 

    HTTP Request Message

    Request message 구조
    Request Message Header

    GET/1.html HTTP/1.1

    Get방식, 1.html 정보 요청, HTTP/1.1 버전

     

    Host: localhost:8080
    요청한 주소를 나타냄

     

    User-Agent

    웹브라우저의 다른표현이라고 보면 됨(요청하는 브라우저가 어떤 웹브라우저인지 보여줌)
    현재 사용자의 운영체제와 버전, CPU정보가 담겨있음(위의 사진은 Mac OS 10_13_5버전 , intel CPU) 
    이를 통해, 나중에  어떤 브라우저를 쓰는 사람이 많이 접속하는지 등의 통계를 낼 수 있으며, Bot이 접속하는 경우 차단이 가능하다.

     

    Accept-Encoding

    웹서버에서 크기가 큰 컨텐츠들은 압축을 통해서 웹브라우저로 보내지게 되는데, 압축을 지원하는 형식을 보여줌

     

    If-Modified-Since

    서버는 효율성을 위해 요청할 때 마다  데이터를 보내주는 것이 아닌,  If-Modified-Since의 시간 값을 비교해서 최신의 데이터가 업데이트 된 경우에만 보내주게 된다.

     

    HTTP Response Message

    Response message 구조
    Response Message Header

    HTTP/1.1 200 OK

    HTTP/1.1 방식으로 200(성공적으로 데이터를 가져왔다!) 반환 OK(유저가 이해하기 쉽도록 써준부분)

    (status code검색하면 더 많은 정보를 알 수 있다.)

     

    Last-Modified
    마지막으로 데이터를 보내준 날짜(Request에 있는 If-Modified-Since와 비교해서 업데이트 됐을 때만 데이터를 넘겨줌)

     

    Content-Encoding
    gzip이라는 형식으로 데이터가 압축됨을 알려줌

     

    Content-Length 
    컨텐츠의 글자수

     

    Content-Type
    컨텐츠의 형식(Text형식으로/HTML임)

     


    참고자료

    https://opentutorials.org/course/4848/21673

     

    HTTP 소개 - 생활코딩

    수업소개 HTTP가 무엇인지를 살펴봅니다. 크롬 개발자 도구 내의 네트워트 기능도 살짝 살펴봅니다.  강의

    opentutorials.org

     

    'CS' 카테고리의 다른 글

    동시성 제어(Concurrency Control)  (0) 2024.03.26
    쿠키(Cookie)란 무엇인가? (+ Session 추가정리)  (0) 2023.12.18
    NoSQL이란 무엇인가?  (0) 2023.12.14
    REST API란 무엇인가?  (2) 2023.12.05
    HTTP API와 HTTP Method  (0) 2023.12.04
Designed by Tistory.