본문 바로가기

old/Cyber Security

HTTP 프로토콜 요청과 응답: 클라이언트와 서버의 통신 방식

반응형

정의

HTTP(HyperText Transfer Protocol)는 인터넷 상에서 데이터를 주고받기 위한 통신 프로토콜 중 하나입니다. HTTP는 웹 브라우저와 웹 서버 간의 통신을 담당하며,

클라이언트가 서버에게 데이터를 요청(request)하고, 서버는 클라이언트에게 응답(response)합니다.

작동방식

HTTP는 요청-응답(request-response) 방식으로 작동하며, 일반적으로 클라이언트가 웹 페이지를 요청하면, 서버는 해당 페이지를 포함한 HTML 파일, 이미지, 동영상 등의 리소스를 클라이언트에게 전송합니다.

HTTP 프로토콜의 구성 요소

  1. HTTP 메소드(Method): 클라이언트가 서버에게 요청을 보낼 때 사용되는 메소드입니다. 대표적인 HTTP 메소드로는 GET, POST, PUT, DELETE 등이 있습니다.
  2. URI(Uniform Resource Identifier): 인터넷 상에서 리소스를 고유하게 식별하기 위한 문자열입니다.
  3. 헤더(Header): 요청이나 응답의 메타데이터를 포함하는 부분입니다. 헤더는 요청이나 응답의 정보, 인증 정보, 캐시 제어 정보 등을 담을 수 있습니다.
  4. 본문(Body): 요청이나 응답의 실제 데이터를 포함하는 부분입니다. 일반적으로 GET 메소드에서는 본문을 사용하지 않습니다. POST나 PUT 메소드에서는 본문에 데이터를 실어 보냅니다.

HTTP Request 예제

[http method] [URL] [HTTP version]

[header]

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Connection: keep-alive

  • HTTP 메소드(Method): GET
  • URI(Uniform Resource Identifier): /index.html
  • 버전(Version): HTTP/1.1
  • 헤더(Header): Host, User-Agent, Accept, Accept-Language, Connection

HTTP Response 예제

[HTTP version] [status code]

[Header]

[Body]

HTTP/1.1 200 OK
Date: Wed, 12 May 2021 10:12:34 GMT
Server: Apache/2.4.29 (Unix)
Last-Modified: Fri, 01 May 2020 12:34:56 GMT
ETag: "abcd1234efgh5678"
Content-Length: 1234
Content-Type: text/html

<!DOCTYPE html>
<html>
<head>
	<title>Example Web Page</title>
</head>
<body>
	<h1>Hello, World!</h1>
	<p>This is an example web page.</p>
</body>
</html>
  • 버전(Version): HTTP/1.1
  • 상태 코드(Status Code): 200 OK
  • 헤더(Header): Date, Server, Last-Modified, ETag, Content-Length, Content-Type
  • 본문(Body): HTML 문서
반응형