ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <WEB Hacking> HTTP
    WEB Hacking 2021. 12. 13. 17:48

    ■통신 프로토콜

    요청(Request) : 클라이언트 -> 서버

    응답(Response) : 서버 -> 클라이언트

    프로토콜(Protocol) : 규격화된 상호작용에 적용되는 약속

    컴퓨터 통신 프로토콜은 각 통신 주체가 교환하는 데이터를 명확히 해석할 수 있도록 문법(syntax)을 포함

    문법에 어긋난 메시지는 잘못 전송된 것으로 받아들여 무시함

     

    ■HTTP(Hyper Text Transfer Protocol)

    서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜

    기본 동작 : 클라이언트가 요청하고, 서버가 응답

    웹 서버는 HTTP 서버를 HTTP 서비스 포트(TCP/80 또는 TCP/8080)에 대기시킨다.

    클라이언트가 이 서비스 포트에 HTTP 요청을 하면, 서버 측은 이를 해석하여 응답을 클라이언트에게 반환한다.

     

    ※ 네트워크 포트(Network Port)

    네트워크에서 서버와 클라이언트가 정보를 교환하는 추상화된 장소

    포트(Port)를 뜻하는 항구처럼, 클라이언트가 서버의 포트에 데이터를 주고, 서버가 클라이언트에게 보낼 데이터를 반환

     

    ※ 서비스 포트(Service Port)

    네트워크 포트 중 특정 서비스가 점유하고 있는 포트 ex) HTTP(80)

    포트로 데이터를 교환하는 방식은 전송 계층(Transport Layer)의 프로토콜을 따름 ex) TCP, UDP

    현재 사용하는 포트의 수 : 0 ~ 65535

    잘 알려진 포트 : 0 ~ 1023번까지이며, 이 포트에 서비스를 실행하려면 관리자의 권한이 필요

    ex) SSH(22), HTTP(80), HTTPS(443)

     

    ■HTTP 메시지(요청 + 응답)

    · HTTP 헤드

    HTTP 헤드의 각 줄은 CRLF로 구분되며, 첫 줄은 시작 줄, 나머지 줄은 헤더(Header), 헤드의 끝은 CRLF 한 줄로 나타냄

    헤더는 필드와 값으로 구성되며 HTTP 메시지 또는 바디의 속성을 나타냄

    하나의 HTTP 메시지에는 0개 이상의 헤더가 있을 수 있음

     

    · HTTP 바디

    헤드의 끝을 나타내는 CRLF 뒤의 모든 줄

    클라이언트나 서버가 전송하고자 하는 데이터가 담김

     

    ■HTTP 요청

    클라이언트가 서버에게 특정 동작을 요구하는 메시지

    시작 줄은 메소드(Method), 요청(URI), HTTP 버전으로 구성(띄어쓰기로 구분)

    메소드(Method) : URI가 가리키는 리소스를 대상으로, 서버가 수행하길 바라는 동작(HTTP 표준에 정의된 메소드는 8개)

    요청 URI는 메소드의 대상을, HTTP 버전은 클라이언트가 사용하는 HTTP 프로토콜의 버전을 나타냄

     

    · GET

    리소스를 가져오라는 메소드

    이용자가 브라우저에 웹 서버의 주소를 입력하면 새로운 페이지를 렌더링하기 위해 리소스가 필요함

    이때 브라우저는 GET 요청을 서버에 전송하여 리소스를 받아옴

     

    · POST

    리소스로 데이터를 보내라는 메소드

    전송할 데이터는 보통 HTTP 바디에 포함

     

    ■HTTP 응답

    HTTP 요청에 대한 결과를 반환하는 메시지(요청의 수행 유무, 미수행 시 상태 정보, 클라이언트에게 전송할 리소스 포함)

     

    · 시작줄

    HTTP 버전, 상태 코드(State Code), 처리 사유(Reason Pharse)로 구성

    HTTP 버전은 서버에서 사용하는 HTTP 프로토콜의 버전을 나타냄

    상태 코드는 요청에 대한 처리 결과를 세 자릿수로 나타냄(HTTP 표준인 RFC 2616은 약 40개의 상태 코드를 정의)

    'WEB Hacking' 카테고리의 다른 글

    <WEB Hacking> Cookie  (0) 2021.12.14
    <WEB Hacking> Browser DevTools  (0) 2021.12.14
    <WEB Hacking> Web Browser  (0) 2021.12.13
    <WEB Hacking> Web  (0) 2021.12.13
    <WEB Hacking> HTTPS  (0) 2021.12.13
Designed by Tistory.