[Internet] HTTP란 ?

_ne·2022년 8월 11일
0

🌍 HTTP (HyperText Transfer Protocol)

- HTTP는 1989년부터 1991년에 발명되었다.
- HTTP는 월드 와이드 웹(WWW)에 내재된 프로토콜이다.
- HTTP는 인터넷에서 데이터를 주고 받을 수 있는 프로토콜이다.
- 웹 페이지를 방문할 때마다 컴퓨터는 HTTP(Hypertext Transfer Protocol)를 사용하여
  인터넷 어딘가에 있는 다른 컴퓨터에서 해당 페이지를 다운로드한다.

프로토콜이란?

프로토콜은 규칙(약속)이란 의미이다.
컴퓨터 네트워크(관계망)에서 데이터를 주고받을 때,
이러한 규칙에 맞춰 개발함으로써 서로 정보를 교환할 수 있게 된 것이다.
컴퓨터 네트워크에서 데이터를 보내고 받는 성격에 따라 프로토콜이 만들어졌다.
웹 문서를 주고 받을 때는 HTTP를 사용해야하고 파일을 주고 받을 때는 FTP,
메일은 SMTP, POP 등 전송 계층과 유형에 따라 다양하게 만들어져있다.

✨ http 동작

사용자가 브라우저를 통해서 어떠한 서비스를 URL 등을 통해 요청(Request)를 하면 서버에서는 해당 요청사항에 맞는 결과를 찾아서 사용자에게 응답(Response)하는 형태로 동작합니다.

Request : client -> server
Response : server -> client

HTTP 통신을 위한 정보 문서는 HTML, JSON 데이터 및 XML 등이 있고
보통 클라이언트에서 정보를 HTML 형태로 받고싶은지, JSON형태로 받고싶은지 명시해주는 경우가 많다.

✨ http의 특징

HTTP는 간단하다 : HTTP는 사람이 읽을 수 있도록 간단하게 고안되었다.

확장 가능하다 : 클라이언트와 서버가 새로운 헤더의 시맨틱에 대해서만 합의한다면, 언제든지 새로운 기능을 추가할 수 있다.

무상태(Stateless) : HTTP는 상태를 저장하지 않는다. 즉, 통신간의 연결 상태 처리나, 정보를 저장할 필요가 없기 때문에 서버 디자인이 간단해진다는 장점이 있다. 저장이 필요한 경우에는 쿠키나 세션을 활용해 정보를 저장할 수 있다.

비연결성(Connectionless) : HTTP는 클라이언트와 서버가 한 번 연결을 맺은 후, 서버가 응답을 마치면 맺었던 연결을 끊어버린다. 컴퓨터마다 매번 연결을 유지할 필요가 없기 때문에 리소스를 줄일 수 있어 더 많은 연결을 수행할 수 있다는 장점이 있다. 하지만 연결 해제를 매번 해주어야 때문에 이에 대한 오버헤드가 일어난다는 단점 또한 가지고 있다.

🔥 Request

서버가 요청에 대한 답변을 클라이언트에게 보내는 것

HTTP Request Method(요청 메소드)

GET : 특정 리소스의 표시를 요청합니다. GET을 사용하는 요청은 오직 데이터를 받기만 합니다.
HEAD : GET 메소드의 요청과 동일한 응답을 요구하지만, 응답 본문을 포함하지 않습니다.
POST : 특정 리소스에 엔티티(개체)를 제출할 때 쓰입니다.
	   이는 종종 서버의 상태의 변화나 부작용을 일으킵니다. 
PUT : 목적 리소스 모든 현재 표시를 요청 payload(전송되는 데이터)로 바꿉니다.
DELETE : 특정 리소스를 삭제합니다.
CONNECT : 목적 리소스로 식별되는 서버로의 터널을 맺습니다.
OPTIONS : 목적 리소스의 통신을 설정하는 데 쓰입니다.
TRACE : 목적 리소스의 경로를 따라 메시지 Loop-Back 테스트를 합니다.
PATCH : 리소스의 부분만을 수정하는 데 쓰입니다.

🔥 Response

서버가 요청에 대한 답변을 클라이언트에게 보내는 것

HTTP Response Code (응답 코드)

1xx (조건부 응답) : 요청을 받았으며 작업을 계속합니다.
2xx (성공) : 클라이언트가 요청한 동작을 수신하여 이해했고 승낙했으며 성공적으로 처리했음을 가리킵니다.
3xx (리다이렉션 완료) : 클라이언트는 요청을 마치기 위해 추가 동작을 취해야 합니다.
4xx (요청 오류) : 클라이언트에 오류가 있음을 나타냅니다.
5xx (서버 오류) : 서버가 유효한 요청을 명백하게 수행하지 못했음을 나타냅니다.

참고 사이트

https://kyun2da.dev/CS/http%EB%9E%80/
https://usefultoknow.tistory.com/entry/HTTP%EB%9E%80

profile
끄적이는 곳

0개의 댓글