본문 바로가기

network

HTTP란?

HTTP(HyperText Transfer Protocol)라는것은 HTML(hypertext) 문서를 교환하기 위해 만들어진 통신규약(protocol)이다.
보통 웹상에서는 네트워크로 서버끼리 통신 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 통신 형식이다.
Client <-> Server 간의 통신에 사용되며 프론트엔드와 백엔드 서버간의 통신에도 사용된다.

HTTP 통신방식

  • 기본적으로 요청(request)과 응답(response)의 구조로 되어있다. (클라이언트가 HTTP request를 서버에 보내면 서버는 HTTP response를 보내는 구조이다.)

User -> browser (request<->response) server
HTTP는 상태를 저장하지 않는다. 어떠한 요청이 오면 그것에 응답할뿐 여러 요청과 응답끼리 연결되어 있지 않다. (독립적이다)

HTTP request

HTTP request 형식

  • HTTP Method / request target / HTTP Version으로 구성되어 있다.
    • POST /user/login HTTP/1.1
    • HTTP Method
      • 해당 request가 의도한 action을 정의하는 부분
      • HTTP Method에는 GET, POST, PUT, DELETE, OPTIONS 등이 있다.
        • 주로 GET, POST가 쓰인다.
      • Request target
        • 해당 request가 전송되는 목표 URI ex) /login
      • HTTP Version
        • HTTP 버전으로 나타낸다. 1.0, 1.1, 2.0 등이 있다.

Headers

  • request에 대한 추가 정보를 담고 있는 부분이다.
    • key: value 형식으로 되어 있다.

Body

  • request의 실제 메세지 내용으로 Body가 없는 request도 있다.
    • GET method에는 body가 담겨 있지 않다.

HTTP Response

HTTP response 형식

  • HTTP version / status code / status text 로 구성되어 있다.
    • HTTP/1.1 404 Not Found
    • HTTP version은 http request 부분에 설명했으므로 넘어간다.
    • status code
      • 응답상태를 나타내는 코드 (숫자로 나타냄)
    • status text
      • 응답상태를 간략하게 설명해주는 부분 (status code에 따라 달리 나타내짐)

Headers

  • Response의 header와 동일 (다만, response에서만 사용되는 header 값들이 있다)

Body

  • Response의 body와 일반적으로 동일
  • 모든 response에 body가 있지는 않다. 데이터가 비어있을 수 도 있다.

HTTP Method

  • POST
    • 데이터를 생성/수정/삭제 할때 주로 사용되는 Method
  • GET
    • 데이터를 서버로 부터 받아올때 주로 사용하는 Method로 생성/수정/삭제 없이 받아오기만 한다.
  • PUT
    • 데이터를 생성 할때 사용되는 Method
  • DELETE
    • 특정 데이터를 서버에서 삭제 요청을 보낼때 사용되는 Method

HTTP 응답 상태 코드

2xx

-   200 : 클라이언트의 요청을 정상적으로 수행
-   201 : 클라이언트가 어떠한 리소스 생성을 요청, 해당 리소스가 성공적으로 생성됨(POST를 통한 리소스 생성 작업 시)

3xx

-   301 : 클라이언트가 요청한 리소스에 대한 URI가 변경 되었을 때 사용하는 응답 코드

4xx

-   400 : 클라이언트의 요청이 부적절 할 경우 사용하는 응답 코드
-   401 : 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을때 사용하는 응답 코드 (로그인 안한 유저가 로그인 했을때만 요청되는 리소스를 건드릴때)
-   403 : 유저 인증상태와 관계 없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을 때 사용하는 응답 코드
-   404 : 클라이언트가 서버와 통신할 수 있지만 서버가 요청한 바를 찾을 수 없다고 나타내는 응답 코드 (요청된 URI가 존재 하지 않을때)
-   405 : 클라이언트가 요청한 리소스에서 사용 불가능한 Method를 이용했을 경우 사용하는 응답 코드

5xx

-   500 : 서버에 문제가 있을 경우 사용하는 응답 코드

'network' 카테고리의 다른 글

쿠키와 세션에 대해서  (0) 2021.08.25
REST API  (0) 2021.06.14
API란?  (0) 2021.06.14