[TIL] HTTP에 대해서...

Simple Key·2020년 4월 8일
0

HTML이란 ?

HTTP는 HyperText 문서를 교환하기 위해 만든 Transfer Protocol (통신 규약)이다. 웹 상에서 서버끼리 통신을 할 때 어떠한 형식으로 주고 받을지 정해놓은 '통신구조' 또는 '통신형식'이라고 볼 수 있다.

1. HTML의 핵심요소 두가지!

  • 요청 Request / 응답 Response
  • Stateless
  1. 클라이언트와 모슨 서버간의 통신은 요청과 응답의 구조로 이루어진다.
  2. HTML은 기본적으로 Stateless라 상태를 저장하지 않는다. 요청이 있을때 응답을 할 뿐이지 데이터를 저장하지 않는다. 예를 들어 클라이언트가 요청을 하고 서버가 응답을 함으로 통신이 이루어지면 클라이언트가 똑같은 요청을 다시 했을때 바로 전 똑같은 내용의 요청에 대해서 모른다는 것.
  3. 때문에 같은 요청을 여러번 해야할 때는 쿠키나 세션 등을 이용한다.
  4. 로그인 정보같이 계속 유지되어야 하는 경우는 필요한 내용들을 요청에 첨부하여 요청을 한다.

2. 요청 Request 구조

  • start line
  • header
  • body

1. Start line
- HTTP Method
-해당 요청이 의도한 action을 정의
-GET, POST, PUT DELETE 등이 있다.
-GET과 POST를 가장 많이 사용
- Request Target:
-해당 요청이 전송되는 uri
-예를 들어 /login
- HTML Version:
-사용되는 html 버전 1.0 , 1.1, 2.0 등이 있다.
2. headers
- 해당 요청에 대한 추가 정보를 담고 있는 부분
- key:value 형태로 되어있다.
- 자주 사용되는 header의 내용
-Host: 요청이 전송되는 target의 url
-User-Agent: 요청을 하는 클라이언트 정보(예-브라우저 정보)
-Access: 해당 요청이 받는 응답의 타입
-Connection: 해당 요청이 끝난 후 클라이언트와 서버간의 연결 유지 여부
-Content-Type: 해당 요청이 보내는 메세지Body의 타입
-Content-Length: 메세지 Body의 길이
3. body: 해당 요청의 실제 메세지 내용. body가 없는 요청들도 많다.


3. 응답 Response 구조

  • status line
  • headers
  • body

1. Status line
- HTTP 버젼
- Status Code: 응답 상태를 나타내주는 코드. 숫자로 되어있다.
- Status Text: 응답 상태를 간략하게 설명해준다

2. Headers: Request Headers와 동일하다. user-agent 대신 server가 있다.
3. Body: Request Body와 일반적으로 동일. 데이터 전송이 필요없는 경우 body가 없을 수 도 있다.


4. 자주 쓰이는 HTTP Methods

  • GET
    - 이름 그대로 어떠한 데이타를 서버로 부터 받아올때 주로 사용한다.
    • 데이터 생성/수정/삭제 없이 받기만 함
    • 가장 간단하고 많이 쓰이는 Method
    • 주로 데이터를 받아올 때 사용되므로 request에 body없이 보내는 경우가 많음
  • POST
    - 데이터를 생성/수정/삭제 할때 주로 사용되는 Method
    • 데이터를 생성 및 수정할때 많이 사용되므로 대부분 request body가 포함되어 보내진다.

5. 알고 있으면 좋은 HTTP Methods

  • OPTIONS
    - 주로 요청 URI에서 사용할 수 있는 Method를 받아올때 사용

    • 예를들어, /update uri에서 어떤 method를 요청 가능한가(GET? POST?)를 알고 싶으면 먼저 OPTIONS 요청을 사용해서 확인하게 된다.
  • PUT
    -POST와 비슷하며 데이터를 생성할 때 사용
    -POST와 겹치기 때문에 PUT을 사용하는 곳도 있고 POST로 통일해 사용하는 곳도 있다. 최근에는 POST를 많이 쓰는 추세

  • DELETE
    -특정 데이터를 서버에서 삭제 요청을 보낼때 쓰이는 Method
    -PUT과 마찬가지로 POST에 밀려 잘 사용되지 않는 추세

    6. 자주 쓰이는 HTTP Status Code

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

  • 301 Moved Permanently
    - 해당 URI가 다른 주소로 바뀌었을때 보내는 코드

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

    • 주로 요청에 포함된 input값이 잘못 전달됐을 때(예/ 전화번호를 보내야 하는데 Text가 보내짐)
  • 401 Unauthorized
    - 유저가 해당 요청을 진행할려면 먼저 로그인을 하거나 회원가입을 하거나 등이 필요하는 것을 나타낼 떄 보내는 코드

  • 404 Not Found
    - 요청된 URI가 존재 하지 않을때 보내는 코드

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

profile
프론트엔드 개발자 심기현 입니다.

0개의 댓글