TIL | 19 - HTTP

Soojong Kim·2021년 6월 22일
0
post-thumbnail

클라이언트와 서버

네트워크 기본

네트워크는 컴퓨터와 컴퓨터간의 연결을 의미한다.
네트워크에서 정보를 요구하고 받는 쪽은 클라이언트(Client) / 정보를 제공해 주는 쪽은 서버 (Server) 라고한다.

실제로 브라우저에 접속하면 웹 서버에서 웹을 다운받고, 보는 이미지들은 파일 서버에서 다운받은 결과물이다.
또한, 웹에 로그인하는 과정은 인증서버와 통신을 하고, 상품들 정보를 확인하는 것은 상품 정보를 제공하는 API 서버와 통신을 한 것이다.

HTTP 통신이란?

컴퓨터끼리 통신을 할 때 여러가지 방식으로 통신이 가능한데 이런 방식들을 통신 프로토콜 이라고 한다.

  • SMTP 프로토콜 : 메일을 주고 받을 때 사용
  • FTP 프로토콜 : 파일을 전송할 때 사용

HTTP 통신: HTTP 프로토콜을 활용한 통신

HTTP 요청

  1. 어떤 서버에게 요청할 것인지 URL이 있어야 한다.
  2. 어떤 방식으로 통신을 할 것인지 Method가 있어야 한다.
    HTTP 요청은 클라이언트에서 서버에 데이터 처리를 시작하기 위해 보내는 메시지인데 이 구조는 세부분으로 구성되어있다.
  • Start
  1. HTTP Method: 해당 요청이 의도한 액션을 정의하는 부분, GET, POST, DELETE
  2. Request target: 해당 request가 전송되는 목표 URL
  3. HTTP Version: 말 그대로 사용되는 HTTP 버전 *주로 1.1버전에 널리 쓰임
    GET / login HTTP / 1.1 = GET 메소드로 login 이라는 요청 타겟에 HTTP 1.1 버전으로 요청하겠다!

HTTP 두가지 특징

  1. Request / Response (요청/응답)
    • Hearders: 요청에 대한 추가 정보를 담고있다.
      Key: Value 값
      Headers :
      Host: 요청을 보내는 목표의 주소 (웹 사이트의 기본주소)
      User-Agent: 클라이언트에 대한 정보(ex:safari)
      Content-Type: 요청이 보내는 메시지 Body 타입
      Content-Length: Body 내용의 길이
      Authorization: 회원의 인증/인가 처리하기 위해 로그인 토큰을 Authorization에 담는다.
      Body :해당 요청의 실제 내용. POST 메소드가 주로 Body 사용
      ex) 로그인 시에 서버에 보낼 요청의 내용
  1. Stateless

    이름 그대로 '상태없음'
    매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다.

HTTP Method

클라이언트가 서버에게 HTTP 요청을 할 때, URL 주소와 함께 HTTP Method를 정의해야 한다.GET, POST, PUT,DELETE 등 많은 method가 있다.

같은 URL 주소로 서버에게 요청하더라도 method가 다르면 다른 요청으로 간주한다!

  • GET
    일반적으로 정보를 받을 때 사용하는 Method이다. 만약 method를 설정하지 않는다면 GET이 기본 method로 들어간다. 우리가 주로 사용하는 웹 서버에서 웹을 다운받을 때도 GET이 사용된다. 데이터를 받아오기만 할 때 사용된다!
    -> 웹 서버에서 접속해서 웹을 다운받을 때
    -> 웹 서버에서 접속해서 상품 정보들을 받아올 때
  • POST
    POST는 새로운 자원을 생성할 때 사용하는 Method이다.
    -> 웹 서버에서 접속해서 아이디, 패스워드를 입력하고 로그인 할 때
    -> 데이터를 생성 / 수정 할 때 사용
  • Delete
    특정 데이터를 서버에서 삭제 요청 할 때 사용하는 Method이다.

HTTP 응답

  1. 응답의 상태를 나타내는 Status Code가 있어야 한다.
  2. 요청 결과를 Body에 담아야 한다.
    200 : OK -> 정상적으로 응답했을 때
    400 : Bad Request -> 요청의 Body에 보내는 내용이 잘못되었을 때 사용되는 코드
    404 Not Found -> 해당 URL 요청을 처리할 수 없을 때, 요청된 URL이 존재하지 않는다는 의미
    500 Internal Server Error -> 서버에서 에러가 났을 때의 Status Code

0개의 댓글