HTTP 통신

손채윤·2023년 12월 2일
post-thumbnail

HTTP란?

-프론트앤드<->백앤드 등 서로 통신을 하자고 규정해놓은 "통신규약"이다.
-http통신은 requestresponse로 나누어진다.

HTTP Request의 구조

1.start line : HTTP request의 첫 라인

  • HTTP Method : GET, POST, PUT, DELETE, OPTIONS등이 들어감 즉, 해당 request가 의도한 action을 정의하는 부분이다.
  • Request target : 해당 request가 전송되는 목표 uri. 즉, /login
  • HTTP Version : 사용되는 HTTP버전. ex)GET/search HTTP/1.1

2.headers :해당 request에 대한 추가정보를 담고 있는 부분

  • 자주 사용되는 header정보

    • Host : 요청이 전송되는 target의 host url. 예를들어 google.com이 있다.
    • User-Agent : 요청을 보내는 클라이언에 대한 정보. 즉, 요청을 보내는 주체에 대한 정보
    • Accept : 해당 요청이 받을 수 있는 응답(response)타입.
    • Connection : 해당 요청이 끝난 후, 클라이언트와 서버가 계속해서 네트워크 컨넥션을 유지하느냐 마냐에 대해 지시하는 부분.
    • Contetn-Type : 해당 요청이 보내는 메세지 body의 타입. 예를들어 JSON을 보내면 application/json이 된다.
    • Contetn-Length : 메세지 body의 길이

3.body

  • 해당 request의 실제 메세지 내용
  • body가 없는 request도 많음


<request의 예>

start line
POST /payment-sync HTTP/1.1

headers
Accept: application/json
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Length: 83
Content-Type: application/json
Host: intropython.com
User-Agent: HTTPie/0.9.3

body
{
"imp_uid": "imp_1234567890",
"merchant_uid": "order_id_8237352",
"status": "paid"
}




HTTP Response의 구조

크게 3부분으로 나누어짐

  • Status line
  • Headers
  • Body

1.Status line :Response의 상태를 간략하게 나타냄

  • HTTP 버전
  • Status code : 응답 상태를 나타냄. ex)200
  • Status text : 응답 상태를 간략하게 설명해주는 부분.

2.Headers : Request의 headers와 동일함. 다만 response에서만 사용되는 header값들이 있다. 예를 들어 User-Agent대신에 Server헤더가 사용된다.

3.Body : Request의 body와 동일하다. Request와 마찬가지로 모든 response가 body가 있지는 않다. 데이터를 전송할 필요가 없을경우 body가 비어있게 된다.


<response의 예>



주요 HTTP Methods

GET

  • 데이터를 서버로 부터 받아올때 사용되는 Method
  • 데이터 생성,수정,삭제 없이 받아오기만 할때 사용됨
  • 주로 데이터를 받아올때 사용되기 때문에 request에 body를 안 보내는 경우가 많다.

POST

  • 데이터를 생성/수정/삭제 할때 사용되는 Method
  • 데이터를 생성,수정 할때 많이 사용하기 때문에 대부분의 경우 request body가 포함돼서 보내진다.



주요 HTTP Status Code

200 OK
문제 없이 잘 실행이 되었을때 보내는 코드

400 Bad Request
해당 요청이 잘못된 요청일 때 보내는 코드

401 Unauthorized
유저가 해당 요청을 진행 하려면 먼저 로그인이나 회원가입 등을 해야한다는 것을 나타내는 코드

403 Forbidden
유저가 해당 요청에 대한 권한이 없다는 뜻

500 Internal Server Error
서버에서 에러가 났을때 사용되는 코드

0개의 댓글