[HTTP/네트워크] HTTP 총정리(정의,메세지,응답, 요청,메소드)

fejigu·2022년 8월 5일
13

HTTP / 네트워크

목록 보기
5/10
post-thumbnail

✔️ HTTP가 뭔데?

➡️ HTTP(HyperText Transfer Protocol)는
HTML과 같은 문서를 전송하기 위한 프로토콜이다.

HTTP웹 브라우저와 웹 서버의 소통을 위해 디자인되었다.

전통적인 클라이언트-서버 모델에서
클라이언트HTTP Messages 양식에 맞춰 요청을 보내면,
서버HTTP Messages 양식에 맞춰 응답한다.


✔️ HTTP Messages는?

➡️ HTTP Messages
클라이언트와 서버 사이에서 데이터가 교환되는 방식이다.


✔️ HTTP Messages의 요청과 응답

➡️ HTTP Messages에는 다음과 같은 두 가지 유형이 있다.
요청(Requests)
응답(Responses)


➡️ 다음과 같은 유사한 구조를 가집니다.
1) start line : start line에는 요청이나 응답의 상태를 나타낸다. 항상 첫 번째 줄에 위치하고 응답에서는 status line이라고 부른다(→요청이나 응답의 헤드(head))
2) HTTP headers : 요청을 지정하거나, 메시지에 포함된 본문을 설명하는 헤더의 집합이다.(→요청이나 응답의 헤드(head))
3) empty line : 헤더와 본문을 구분하는 빈 줄이 있다.
4) body : 요청과 관련된 데이터나 응답과 관련된 데이터 또는 문서를 포함하며, 요청과 응답의 유형에 따라 선택적으로 사용한다. (→payload)

➡️ Stateless
Stateless는 말 그대로 상태를 가지지 않는다는 뜻이다.
Stateless(무상태성)가 HTTP의 큰 특징이라고 기억하기

HTTP로 클라이언트와 서버가 통신을 주고받는 과정에서,
HTTP가 클라이언트나 서버의 상태를 확인하지 않는다.


✔️ HTTP Requests(요청)

➡️ 요청은 클라이언트에서 서버로 보내는 메시지이며, 위와 같은 구조로 생겼다.
최상단에는 요청라인(Request-Line) 이 있고,

다음 라인에 HTTP Header 정보가 있다.
헤더 이후에 한 줄의 공백이 나온 다음 Body가 오게 된다.

요청라인은 아래와 같은 정보를 포함하며, 각각은 공백으로 구분된다.
*요청 방식(Method), 요청 URI, HTTP 버전

➡️ Start line
1) 수행할 작업(GET, PUT, POST 등)이나 방식(HEAD or OPTIONS)을 설명하는 HTTP method
2) 요청 대상(일반적으로 URL이나 URI) 또는 프로토콜, 포트, 도메인의 절대 경로
3) HTTP 버전

➡️ Headers
1) General headers : 전송되는 데이터와는 관련 없는 헤더
2) Request headers : fetch를 통해 가져올 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더
3) Representation headers : body에 담긴 리소스의 정보(콘텐츠 길이, MIME 타입 등)를 포함하는 헤더

➡️ Body
1) Single-resource bodies(단일-리소스 본문)
2) Multiple-resource bodies(다중-리소스 본문)


✔️ HTTP Responses(응답)

➡️ 서버가 클라이언트의 요청에 대해 응답하는 HTTP 응답헤더
HTTP 응답헤더의 구조는 위과 같다.

전체적인 모양은 요청 헤더의 포맷과 동일합니다.
다른점이 있다면 요청 헤더에서는
Request Line (요청라인) 이었던 것이
응답에서는 Status Line으로 바뀐 점이다.

Status Line에는 다음과 같은 정보를 포함한다.
HTTP 버전 상태코드, 응답이유

➡️ Status line
1) 현재 프로토콜의 버전(HTTP/1.1)
2) 상태 코드 - 요청의 결과를 나타냅니다. (ex. 200, 302, 404 등)
3) 상태 텍스트 - 상태 코드에 대한 설명

➡️ Headers
1) General headers : 전송되는 데이터와는 관련 없는 헤더
2) Request headers : fetch를 통해 가져올 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더
3) Representation headers : body에 담긴 리소스의 정보(콘텐츠 길이, MIME 타입 등)를 포함하는 헤더

➡️ Body
1) Single-resource bodies(단일-리소스 본문)
2) Multiple-resource bodies(다중-리소스 본문)


✔️✔️ HTTP 메소드

➡️ HTTP 메소드는 서버에 요청을 보내는 방법으로,
서버에 임무를 부여하는 것
이라고 생각하면 좋겠다.

서버는 클라이언트로 전달받은 요청에서
주어진 메소드에 해당하는 일을 수행한다.

➡️ HTTP 메소드의 종류와 역할

GET : URI 에 해당하는 정보의 전송요청을 보냄
HEAD : URI 에 해당하는 정보의 전송을 요청. GET 과는 다르게 Meta 정보만을 요청
POST : 서버가 처리할 수 있는 자료를 보냄
PUT : 자료를 전송하여 해당 URI 에 자료를 저장
DELETE : 해당 URI 의 자원/정보를 삭제
CONNECT : 프록시가 사용하고, 연결을 요청
OPTIONS : 요청한 URI 에 어떤 메소드가 가능한지 질문
TRACE : 이전까지 요청한 정보들의 목록을 요청
PATCH : 자원의 부분 교체


✔️✔️ RESTful

➡️ HTTP 메소드를 이용하여 서버와 통신하는 것을 RESTful이라고 한다.

Restful(Representational State Transfer)은
웹의 장접을 최대한 활용할 수 있는 아키텍쳐를 의미한다.

Restful에서는 주로 GET, POST, PUT, DELETE
의 메소드를 이용하여 서버와 통신한다.

➡️ Restful 은 주로 데이터의 CRUD를 위해 사용하며,

Create(생성) 에는 POST 메소드를,
Retrieve(읽기) 에는 GET 메소드를,
Update(수정) 에는 PUT 메소드를,
Delete(삭제) 에는 DELETE 메소드를 이용한다.

profile
console.log(frontendjigu( ☕️, 📱); // true

1개의 댓글

comment-user-thumbnail
2022년 8월 15일

We do basic research as per your requirement to develop the maximum possible creativity at every step. Before delivering it to you our intellectuals proofread our written letter to remove the chances of https://testmyspeed.onl/ errors.

답글 달기