티스토리 뷰

HTTP(Hypertext Transfer Protocol)

HTTP는 인터넷 상에서 (웹 브라우저와 서버 간에) 데이터를 주고 받기 위해 따르는 프로토콜(규약)이다. Hypertext(링크) 기반으로 데이터를 전송하고, 데이터에 접속한다는 것이다. HTTP는 웹에서 자주 볼 수 있는 HTML 문서 뿐만 아니라 이미지, 동영상, 텍스트 문서와 같은 다른 종류의 데이터들을 전송할 수 있다.

HTTP 특징

클라이언트(Client)와 서버(Server)는 상대적인 개념이다.
클라이언트는 요청을 보내는 쪽, 서버는 요청을 받는 쪽을 의미한다.

크롬브라우저에서 네이버 메인 화면에 접속하는 상황을 예시로 들자면, 클라이언트는 크롬 브라우저, 서버는 네이버 메인 화면을 보내주는 네이버 서버가 된다.
이러한 클라이언트와 서버의 개념을 알고, HTTP의 큰 특징 두가지를 알아보자.

첫번째로, HTTP는 Connectless(비연결성) 방식이다.
Connectless 방식이란, 클라이언트가 서버에 연결되어 데이터를 요청해서 그 응답을 받으면 클라이언트-서버 간의 연결을 끊어버리는 방식이다. 하나의 요청에 하나의 연결을 만드는 방식인데, 이러한 이유로 하나의 요청에 대한 response가 날라올 때까지 다른 요청이 불가능하다.
이 방식은 다수가 웹 서비스를 사용하더라도, 접속유지는 최소한으로 하기에 많은 유저의 요청을 처리할 수 있다는 장점을 가진다.

두번째는 HTTP는 Stateless(상태 없음) 방식이다.
Connectless 방식이기에, 응답을 받으면 연결을 끊어, 서버는 클라이언트의 이전 상태를 알 수 없다. 이 문제점을 해결하기 위해 클라이언트와 서버의 상태 정보를 담는 정보 조각인 'Cookie'를 주고 받는다.


Method

Method는 어떤 요청인지 서버에게 알려주기 위해 사용한다.
기본적인 Method를 알아보도록 하자.

  1. GET: 정보를 요청함
  2. POST: 정보를 밀어넣음
  3. PUT: 정보를 업데이트함
  4. DELETE: 정보를 삭제함

URL(Uniform Resource Locators)

우리는 브라우저 주소창에 www.naver.com라는 URL을 입력해서 네이버 페이지로 접속한다. 우리가 당연하게 알고 있던 이 작업은 이제, 브라우저에 url을 입력하는 순간 우리는 서버에 get 요청을 날리고, 그 response로 웹페이지를 받는다는 것으로 이해할 수 있다.

URL의 구성을 살펴보자.

  1. Protocol: HTTP 프로토콜을 사용한다는 것을 명시한다.
  2. Domain Name: 숫자로 이루어진 IP 주소 대신 편리성을 위해 도메인 주소를 사용한다. 어떤 웹서버가 요구되는지를 가리킨다.
  3. Port: 받은 데이터를 어떤 Process에서 받을 것인지를 알아야 하는데, 이때 쓰이는 것이 Port 번호이다.
  4. Path to the file: 웹서버에서 자원(파일)에 대한 경로이다. 실제로는 추상화해서 보여준다.
  5. Parameters: 웹서버에 제공하는 추가 파라미터이다. & 기호로 구분된 키/ 값으로 이루어져있는 리스트이다. 서버에서 자원을 반환하기 전에 추가적인 작업을 위해 이런 파라미터들을 사용한다.

HTTP 상태 코드

서버는 응답(상태) 코드로 서버의 상태를 알려준다.

세자리 숫자로 이루어져 있는데, 맨 앞자리 수에 따라 그 의미가 묶어진다.

1XX 정보 전달

  • 101 Switching Protocols (WebSocket에서 쓰임)

2XX 성공

  • 200 OK (가장 일반적으로 볼 수 있는 성공 처리)

3XX 리다이렉션

  • 304 Not Modified (요청된 리소스 재전송 필요 없음)

4XX 클라이언트 오류

  • 400 Bad Request(잘못된 요청)
  • 404 Not Found(찾을 수 없음)

5XX 서버 오류

  • 500 Internal Server Error (내부 서버 에러)
  • 502 Bad Gateway (gateway가 연결된 서버로부터 잘못된 응답을 받음)

다음은 고양이 사진과 함께 더 많은 상태 코드들을 구경할 수 있는 사이트이다.
HTTP Cats

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함