본문 바로가기
2024.10~/일일 학습 노트

[2024-12-15] HTTP 프로토콜 강의 메모(1)

by HJfan 2024. 12. 15.

Title : HTTP Protocol Study Note(1)


HTTP란

Hyper-Text를 주고 받기 위한 통신 규격으로 Web에서 사용되며, Open Source

구현물이 많아 서버 구현의 부담을 줄이기 위해 많이 사용된다.

 

 

HTTP Request Message

출처 : http://www2.ic.uff.br/~michael/kr1999/2-application/2_02-http.htm

HTTP Request Message의 구조부터 살펴보도록 하겠다.

Request Line, Header Lines, Entitiy Body로 구성되어 있고, 실제 담긴 데이터는 아래 예제와 유사하다.

POST /cgi-bin/process.cgi HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Content-Type: text/xml; charset=utf-8
Content_length: 60
Accept-Language: en-us
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

first=Zara&last=Ali

위 예제를 리퀘스트 메시지를 구성하는 요소들로 구분해 보자면,

Request Line
Method(=POST)  URL(=cgi-bin/process.cgi)  HTTP Version(=1.1)

Header Lines
User-Agent: ...중략... Connection: Keep-Alive
Header에 담기는 정보는 클라이언트가 서버에게 리퀘스트를 요청할 때,
보내는 데이터의 정보 혹은 형태나 서버가 응답을 해주길 원하는 형태 혹은
나는 안드로이드에서 동작하는 Windows에서 동작하는 등등의 클라이언트이다
등의 자기 자신의 정보가 주를 이룬다. 

Entity Body(서버에 실제 전송할 데이터)
first=Zara&last=Ali

 

 

HTTP Request Method

출처 : https://www.fis.kr/ko/major_biz/cyber_safety_oper/attack_info/security_news?articleSeq=2504

위 설명에서 Request Lines의 제일 선두에 포함되던 Method에 관한 정보이다.

서버에 "어떤 동작"을 요청할 지에 대한 정보를 담고 있다.

GET
서버에게서 어느 정보를 "가져올 것이다"라는 요청을 할 경우 사용한다.
정보를 가져오는 것이 목적이니 Request Body를 사용하지 않는다.

POST
지정된 URL에서 Request Body로 보내주는 데이터를 처리 요청한다.
주로 Insert나 Update 등의 서버의 내용을 업데이트할 때 사용된다.

PUT, DELETE
Request Body의 정보를 저장, 삭제할 때 사용한다.

 

 

HTTP Response Message

출처 : https://sungjk.github.io/2019/02/16/http-basic.html

앞서 클라이언트가 서버에게 요청할 때 전달하는 메시지의 포맷을 알아보았다.

위 이미지는 서버에서 리퀘스트 메시지를 수신했을 때, 다시 응답(송신)하는 메시지의 포맷이다.

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Content-Length: 88
Set-Cookie: first=Zara,last=Ali;domain=tutorialspoint.com;Expires=Mon, 19- Nov-2010 04:38:14
GMT;Path=/
Content-Type: text/html
Connection: Closed

<html><body> <h1>Hello Zara Ali</h1> </body> </html>

Response Message 역시 예시와 함께 간단한 구성을 살펴보자.

status line의 Version은 HTTP 1.1과 같은 HTTP 프로토콜의 버전을 저장한다.

그 다음 status code와 phrase에는 우리가 한 번은 접해봤을 404 Not Found의

404(=status code)와 Not Found(=phrase)같은 정보들이 저장된다.

그 외에도 대표적으로 206(이어 받기 성공), 400(잘못된 요청), 401(권한 없음), 403(금지됨) 등이 있다.

status code는 100단위로 의미하는 범위가 달라지기에 큰 범위로 알아두면, 유추가 쉬울 것이다.

eg. 200대는 클라이언트 요청에 대한 성공을 의미, 400대는 요청 실패를 의, 500대는 서버 관련 에러를 의미 등


단어 사전

[1] :

[2] :


Reference :

[1] https://www.youtube.com/watch?v=JJ8MG16XErQ&ab_channel=SKplanetTacademy