[WEB] http 통신

chosh·2021년 8월 14일
0

HTTP란,
Hyper Text Transfer Protocol 의 약자로,
문서와 문서가 링크로 연결 되어 서로 데이터를 전송하는 통신 규약을 말한다.

http는 Request 와 Response 로 이루어 지는데,
Request는 웹에서 서버로 데이터를 요청 하는 것이고,
Response는 서버에서 웹으로 요청 받은 데이터를 응답하는 것을 말한다.

알기 쉽게 설명 하자면,
request는
- 좋아요를 하겠다고 요청
- 스크롤해서 화면 아래 있는 컨텐츠를 보고 싶다고 요청
- 로그인을 시켜달라고 요청
response는
- 좋아요 됐다고 응답
- 아래 컨텐츠를 응답
- 로그인 되었다고 응답

식으로 통신이 이루어 진다.

stateless

하지만 http의 특성으로 stateless 라는것이 있는데 이것은

  • 통신이 1회용이며, 연결을 유지하지 않고, 요청을 하면 응답을 해주는 것이다
  • 장점으로는 정보를 저장할 필요가 없으니까 관리가 쉽고,
  • 단점으로는 통신 결과를 저장 안해서, 로그인을 하고, 영상을 보여주는 과정에서 요청을 따로 하면 영상을 보여줄 때, 로그인을 했다는 정보가 없어진다. 이 단점을 보완하는 것이 바로 token이라는 것으로, 로그인을 완료했다는 정보를 가지고 있는 증표 같은 것으로 로그인 같은경우 매번 요청 하지 않아도 된다.

request, response

request와 response는 세가지의 단계를 가지고 있는데,

  • request는
    1. Start Line
    2. Headers
    3. Body
  • response는
    1. Status Line
    2. Headers
    3. Body

로 첫번째 단계만 다르고
메타데이터를 다루는 Headers와, 요청과 응답의 실제 데이터를 가지고 있는 Body는 같다

웹에서 요청을 하면, 서버에서 대답하는 형식이라 항상 처음은 request가 먼저 요청을 하는 방식이며, 그래서 1단계가 start line 이고, response의 1단계는 상태를 표시하는 status line 이다.

request 1단계 start line은 HTTP method를 사용하고, 요청할 서버를 targeting하고, Http version 정보를 담는다.

response 1단계의 status line은 Http version을 응답하고, status code와 status text를 응답해준다.

response status code

response 1단계 status line 에서는 다음과 같은 code들을 응답한다.

  • Success
    • 200 : OK
    • 201 : Created
  • Error
    - 400 : Bad Request (오타가 있어서 잘못 요청 했을 때)
    • 401 : Unauthorized (로그인이 필요한데 누군지 모르겠다고 에러를 띄우는것)
    • 403 : Forbidden (권한이 없음)
    • 404 : Not Found (요청한 데이터나 페이지가 없을 때)
  • Server Error
    - 500 : Internal Server Error (서버가 다운 되었을 때 에러)

등이 있으며, 에러 코드를 통해 어디에서 잘못되었는지 대략적으로 유추 할 수 있다.

profile
제가 참고하기 위해 만든 블로그라 글을 편하게 작성했습니다. 틀린거 있다면 댓글 부탁드립니다.

0개의 댓글