HTTP

jihyun·2021년 8월 26일
0

TIL

목록 보기
11/17
post-thumbnail

HTTP? Hypertext Transfer Protocol
HyperText: 문서와 문서가 링크로 연결
Transfer : 전송 (보내는 주체 - 받는 주체)
Protocol : 협약, 통신 규약 (어떻게 HyperText를 주고 받을지에 대한)

HTTP의 특징

1. Request(요청) & Response(응답)

Request(요청) : 클라이언트 -> 서버
Response(응답) : 서버 -> 클라이언트

2. Stateless

각각의 HTTP 통신은 독립적이라 과거의 통신 내용을 알지 못한다.
-> 매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다.

여러번의 통신에 연속된 데이터 처리가 필요한 경우? "토큰"

Request(요청)

<start line>

 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 버전으로 요청을 보내겠다!

<headers> -> 해당 요청에 대한 메타 데이터(key:value 형태)

  Headers: {
      Host: 요청을 보내는 목표(타겟)의 주소. 즉, 요청을 보내는 웹사이트의 기본 주소가 된다
      (ex. www.apple.co.kr)
      User-Agent: 클라이언트 브라우저 (ex. chrome, firefox, safari, explorer)
      Content-Type: 해당 요청이 보내는 메세지 body의 타입 (ex. application/json)
      Content-Length: body 내용의 길이
      Authorization: 회원의 인증/인가를 처리하기 위해 로그인 토큰
  }

<body> -> 요청의 실제 내용 (POST 메소드가 주로 사용), 요청에 따라 없을 수 있다.
  ex) 로그인 시에 서버에 보낼 요청의 내용
  Body: {
      "user_email": "jun.choi@gmail.com"
      "user_password": "wecode"
  }

Response(응답)

<Status Line> -> 응답의 요청에 대한 처리상태

 1. HTTP Version: 요청의 HTTP버전과 동일
 2. Status Code: 응답 메세지의 상태 코드
 3. Status Text: 응답 메세지의 상태를 간략하게 설명해주는 텍스트

    HTTP/1.1 404 Not Found
    해석: HTTP 1.1 버전으로 응답, 요청에 대해서 정보를 찾을 수 없기 때문에(Not Found) 404 상태 메세지를 보낸다.

    HTTP/1.1 200 SUCCESS
    해석: HTTP 1.1 버전으로 응답, 요청에 대해서 성공했기 때문에 200 상태 메세지를 보낸다.
    
    #200대 :Success, #400대 : Error, #500대: server Error


<Headers> -> 응답의 메타 데이터. 다만, 응답에서만 사용되는 헤더의 정보들이 있다. (ex. 요청하는 브라우저의 정보가 담긴 User-Agent 대신, Server 헤더가 사용된다.)

<Body> -> 요청의 Body와 일반적으로 동일, 응답의 형태에 따라 데이터를 전송할 필요가 없는 경우엔 Body가 없을 수도 있다. 

    ex) 로그인 요청에 대해 성공했을 때 응답의 내용
    Body: {
    	"message": "SUCCESS"
    	"token": "kldiduajsadm@9df0asmzm" (암호화된 유저의 정보)
    }
 

0개의 댓글