본문 바로가기

HTTP

HTTP란?

반응형

1. HTTP(HyperText Transfer Protocol) 정의

HTTP는 HyperText Transfer Protocol의 약자로, 인터넷에서 웹 페이지를 전송하는 데 사용되는 프로토콜이다. HTTP는 클라이언트와 서버 간의 통신을 처리하며, 주로 웹 브라우저가 서버에서 웹 페이지를 요청할 때 사용된다.

HTTP는 요청-응답(request-response) 모델로 작동한다. 클라이언트(웹 브라우저)는 서버에게 요청(request)을 보내고, 서버는 요청을 처리한 후 클라이언트에게 응답(response)을 보낸다.

요청과 응답은 HTTP 메시지라는 형식을 갖추고 있다. 요청 메시지에는 요청의 종류(GET, POST, PUT, DELETE 등)와 요청 URI(Uniform Resource Identifier) 등이 포함되어 있으며, 응답 메시지에는 응답 코드(200 OK, 404 Not Found 등)와 응답 본문 등이 포함되어 있다.

HTTPS는 HTTP의 보안 버전으로, SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 프로토콜을 사용하여 통신을 암호화한다. HTTPS는 중요한 정보(비밀번호, 개인정보 등)를 전송할 때 사용되며, 보안성을 높인 인터넷 통신을 위해 많이 사용된다.

  • Hypertext: 하이퍼링크가 가능한 텍스트
  • Markup: 화면 출력하기 위한 구조
  • Language: 언어 (웹 브라우저에 표시되도록 설계된 문서의 표준 마크업 언어)

2. URL, URI 형태

URL(Uniform Resource Locator)과 URI(Uniform Resource Identifier)는 인터넷에서 리소스를 식별하고 찾을 수 있도록 하는 개념이다.


URI는 인터넷에서 리소스를 나타내는 고유 식별자로, 리소스의 위치를 명시하지는 않는다. 즉, URI는 인터넷에서 리소스의 이름이나 위치를 나타내는 데 사용된다. URL은 URI의 하위 집합이며, 리소스의 위치를 포함합니다. URL은 일반적으로 프로토콜(http, ftp 등), 호스트명, 포트 번호, 경로, 쿼리 문자열 등으로 구성된다.

[예시] http(s):// 서버ip주소:port번호/파일명?mid=qwe
1) URL (Uniform Resource Locator)
http(s):// 서버ip주소:port번호/파일명

2) URI (Uniform Resource Identifier)
http(s):// 서버ip주소:port번호/파일명?mid=qwe

 

3. HTTP 구성

1) 헤더(HEADERS): HTTP 통신 요청, 응답 시 정보가 보관되는 장소

HTTP 요청과 응답 모두 헤더 정보를 포함한다. HTTP 헤더는 클라이언트와 서버 간의 통신에 필요한 다양한 정보를 제공한다. 일반적으로 헤더는 키-값 쌍으로 구성되어 있다.

HTTP 요청 헤더는 클라이언트가 서버에게 전송하는 요청의 정보를 제공한다. 이 정보에는 요청 방식(GET, POST, PUT 등), 요청 URL, 사용자 에이전트 정보, 쿠키 정보 등이 포함된다.


HTTP 응답 헤더는 서버가 클라이언트에게 응답할 때 전송되는 정보를 제공한다. 이 정보에는 응답 상태 코드(200, 404 등), 콘텐츠 타입(text/html, application/json 등), 서버 정보 등이 포함된다.

2) 본문(BODY): 전송할 데이터의 본문(내용물)

HTTP 바디는 요청과 응답에서 전송되는 실제 데이터이다. HTTP 요청 바디는 클라이언트가 서버에게 전송하는 데이터를 포함한다. 이 데이터는 주로 HTML 폼 데이터나 JSON 데이터와 같은 형태로 전송된다.


HTTP 응답 바디는 서버가 클라이언트에게 전송하는 데이터를 포함한다. 이 데이터는 주로 HTML 페이지, 이미지 파일, 동영상 파일 등의 미디어 파일로 구성된다. HTTP 바디는 요청과 응답 모두에 포함될 수 있다. 요청 바디는 일반적으로 POST 요청이나 PUT 요청에서 사용되며, 응답 바디는 서버가 클라이언트에게 전송하는 데이터의 종류에 따라 다르다. 예를 들어, HTML 페이지를 요청할 때는 서버가 HTML 문서를 응답 바디로 전송한다.

 

4. HTTP 요청 메소드

HTTP 요청 메소드(HTTP request method)는 클라이언트가 서버에게 요청을 보내는 방법을 지정하는 것으로, 클라이언트가 서버에게 어떤 동작을 요청할 것인지 지정하는 데 사용된다.

HTTP 요청 메소드는 클라이언트가 서버에게 어떤 작업을 요청하는 지를 명시하므로, 서버는 이 요청에 대한 응답을 준비할 수 있다. 주요 메소드는 아래와 같다.

1) GET
서버로부터 정보를 가져온다. 주로 웹페이지 조회에 사용된다.

2) POST
서버에 정보를 제출한다. 주로 회원가입이나 게시물 작성에 사용된다.

3) PUT
서버의 자원을 업데이트한다. 주로 파일 업로드나 데이터베이스 수정에 사용된다.

4) DELET
서버의 자원을 삭제한다. 주로 게시물 삭제나 파일 삭제에 사용된다.

 

5. HTTP 응답 코드

HTTP 응답 코드는 서버가 클라이언트에게 응답을 보낼 때, 해당 요청이 성공적으로 처리되었는지, 실패했는지를 나타내는 3자리 숫자 코드이다.

응답 코드는 아래와 같이 5가지 범주로 분류된다.

1) 1xx (Informational)
요청이 수신되었고 처리 중임을 나타낸다.

2) 2xx (Success)
요청이 성공적으로 처리되었음을 나타낸다.

3) 3xx (Redirection)
요청을 완료하려면 추가 작업이 필요함을 나타낸다.

4) 4xx (Client Error)
클라이언트의 요청이 잘못되었거나 불완전한 경우이다.

5) 5xx (Server Error)
서버에서 처리 중에 오류가 발생한 경우이다.


일반적으로 성공적인 요청에 대한 응답 코드는 200(OK)이다. 클라이언트 에러의 경우 404(Not Found)나 400(Bad Request)가 자주 사용된다. 그리고, 서버 오류의 경우 500(Internal Server Error)가 자주 사용된다.

 

6. 브라우저 작동 원리

반응형

'HTTP' 카테고리의 다른 글

캐시 파헤치기  (1) 2025.02.06
세션 파헤치기  (0) 2025.02.06
토큰 파헤치기  (0) 2025.02.06
쿠키 파헤치기  (0) 2025.02.06
REST API  (0) 2023.04.12