HTTP 정의 ∙Methods
HTTP (HyperText Transfer Protocol)
컴퓨터들끼리 HTML파일을 주고받을 수 있도록 하는 소통방식 또는 약속.
웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이다.
Request 요청 / Response 응답
1. Request 구조
Start Line
HTTP Method
:요청시 보내는 HTTP 메소드 형태이다. (GET, POST, PUT, PATCH, DELETE, 기타)Request target
: 해당 request가 어디로 전송되는지에 대한 urlHTTP Version
: 사용되는 HTTP 버전을 뜻한다. 주로 1.1 버전이 널리 쓰인다.
GET /login HTTP/1.1
해석: GET 메소드로 login 이라는 요청 타겟에 HTTP 1.1 버전으로 요청을 보내겠다!
Headers
-
해당 요청에 대한 추가 정보(메타 데이터)를 담고 있는 부분
-
Key: Value 값으로 되어있다 (JavaScript의 객체, Python의 딕셔너리 형태라고 보면 된다) 자주 사용되는 Headers 의 정보에는 다음이 있다
Headers
: { Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다 (ex. www.apple.co.kr)
User-Agent
: 요청을 보내는 클라이언트의 대한 정보 (ex. chrome, firefox, safari, explorer)
Content-Type
: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
Content-Length
: body 내용의 길이
Authorization
: 회원의 인증/인가를 처리하기 위해 로그인 토큰을 Authroization 에 담는다
Body
- 해당 요청의 실제 내용.
- 주로 Body를 사용하는 메소드는
POST
2. Response 구조
Status Line
- 응답의 상태 줄. 요청에 대한 ‘처리상태'를 알려준다.
HTTP Version
: 요청의 HTTP버전과 동일Status Code
: 응답 메세지의 상태 코드Status Text
: 응답 메세지의 상태를 간략하게 설명해주는 텍스트
HTTP/1.1 404 Not Found
해석: HTTP 1.1 버전으로 응답하고 있는데, 프론트엔드에서 보낸 요청(ex. 로그인 시도)에 대해서
유저의 정보를 찾을 수 없기 때문에(Not Found) 404 상태 메세지를 보낸다.
HTTP/1.1 200 SUCCESS
해석: HTTP 1.1 버전으로 응답하고 있는데,
프론트엔드에서 보낸 요청에 대해서 성공했기 때문에 200 상태 메세지를 보낸다.
Headers 요청의 헤더와 동일. 응답의 추가 정보(메타 데이터)를 담는 부분.
Body
- 요청의 메소드에 따라 Body가 필수 조건은 아니듯이 응답의 형태에 따라 테이터를 전송할 필요가 없는 경우엔 Body가 없을 수 있다.
- 가장 많이 사용되는 Body의 데이터 타입은
JSON
(JavaScript Object Notation)
Stateless
HTTP 통신(요청/응답)은 독립적이기 때문에 과거의 통신(요청/응답)에 대한 내용을 알지 못한다. 따라서 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다.
+이렇게 연속된 데이터 처리가 필요한 경우를 위해 로그인 토큰
브라우저 쿠키
세션 로컬스토리지
같은 기술들이 만들어졌다.
HTTP Methods
HTTP Request Methods
1. GET
데이터를 서버로 부터 받아(GET)올 때 사용하는 메소드 데이터를 받아오기만 할 때 사용
(축약 요청 메세지)
GET /shop/bag HTTP/1.1
(축약 응답 메세지)
HTTP/1.1 200 SUCCESS
2. POST
- 데이터를 생성 / 수정 할 때 사용되는 메소드
- 데이터를 생성 / 수정 할 때 많이 사용되기 때문에 대부분의 경우 요청에 body가 포함되어서 보내진다.
(축약 요청 메세지)
POST /shop/bag HTTP/1.1
(축약 응답 메세지)
HTTP/1.1 201 SUCCESS
3. DELETE
특정 데이터를 서버에서 삭제 요청을 보낼 때 사용하는 메소드
(축약 요청 메세지)
DELETE /shop/bag/30 HTTP/1.1
(축약 응답 메세지)
HTTP/1.1 201 SUCCESS
Status Code
Response Status Codes
200: OK
- 가장 자주 보게 되는 Status Code
- 요청에 대한 처리가 백엔드 측에서 문제 없이 이루어지고 나서 오는 응답 코드
201: Created
- 생성 완료 되었을 때 오는 Status Code
- 대게 POST 메소드의 요청에 따라 백엔드 서버에 데이터가 잘 생성/수정 되었을 때 보내는 코드
400: Bad Request
요청이 잘못되었을 때 보내는 Status Code
주로 요청의 Body에 보내는 내용이 잘못 되었을 때 사용되는 코드
401: Unauthorized
- 해당 요청을 진행하려면 user가 먼저 로그인을 하거나 회원가입이 필요하다는 의미
403: Forbidden
- 유저가 해당 요청에 대한 권한이 없다는 뜻
- 접근 불가능한 정보에 접근했을 경우
404: Not Found
- 요청된 URI가 존재하지 않는다는 의미
500: Internal Server Error
- 서버에서 에러가 났을 때의 Status Code
참고 링크 https://eunhyejung.github.io/network,server/2018/09/19/Http-Concept.html
Author And Source
이 문제에 관하여(HTTP 정의 ∙Methods), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dnjstd/HTTP-Methods저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)