HTTP

김지환·2020년 5월 13일
0

Front-end

목록 보기
12/15
post-thumbnail

HTTP란?

: 하이퍼텍스트문서를 교환하기 위해 만들어진 통신규약(protocol) HTTP는 TCP/IP기반으로 되어있고, 기본적으로 request/response구조로 되어있다. 그리고 stateless로 상태를 저장하지 않는다. 요청이오면 독립적이고 서로 요청/응답이 연결되어있지 않아서 응답하고 요청하는게 끝이다.

http 요청구조

start line

  • method
    :action을 정의하는 get/post/put/delete/options등이있다.
  • request target
    :전송되는 목표uri
  • headers
    :body

header정보

:부가정보인 메타 데이터들이 들어간다.

  • Accept: /
    :응답타입

  • Accept-Encoding: gzip, deflate

  • Connection: keep-alive
    :커넥션 유지할건지 지시하는부분

  • Content-Type: application/json
    :요청보내는 메시지 body타입

  • Content-Length: 257

  • Host: google.com

  • User-Agent: HTTPie/0.9.3
    :웹브라우저에 대한 정보

HTTP Methods

● GET

: 이름 그대로 어떠한 데이타를 서버로 부터 받아(GET)올때 주로 사용하는 Method. 데이터 생성/수정/삭제 없이 받아오기만 할때 사용된다.
가장 간단하고 많이 사용되는 HTTP Method 언급한대로 주로 데이터를 받아올때 사용되기 때문에 request에 body를 안 보내는 경우가 많다.

● POST

: 데이터를 생성/수정/삭제 할때 주로 사용되는 Method. 데이터를 생성 및 수정 할때 많이 사용하기 때문에 대부분의 경우 requst body가 포함되서 보내진다.

● OPTIONS

: 주로 요청 URI에서 사용할 수 있는 Method를 받아올때 사용된다.
예를 들어, /update uri에서 어떤 method를 요청 가능한가(GET/POST)를 알고 싶으면 먼저 OPTIONS 요청을 사용해서 확인하게 된다.

Status Line

  • http버전

  • status code
    :200

  • status text
    : not found

Error

200=아무문제없이 실행될때 코드
301=해당URI가 다른주소로 바꼇을때 코드
400=요청이 잘못되었을때코드
401=요청전에 해야되는 일이있을떄 코드
403=해당 요청에 권한없을때 코드
404=요청 URi가 존재하지않을때 코드
500=서버에서 에러났을때 사용되는 코드

forward/redirect

forward

: 실제로 웹 브라우저는 다른 페이지로 이동했음을 알 수 없습니다.
웹 브라우저에는 최초에 호출한 URL이 표시되고, 이동한 페이지의 URL 정보는 확인할 수 없습니다. 이동 할 URL로 요청정보를 그대로 전달한다.
시스템에 변화가 생기지 않는 단순 조회 요청(글 목록 보기, 검색)의 경우 forward로 응답하는 것이 바람직합니다.

redirect

: Redirect는 Web Container로 명령이 들어오면, 웹 브라우저에게 다른 페이지로 이동하라고 명령을 내립니다. 그러면 웹 브라우저는 URL을 지시된 주소로 바꾸고 해당 주소로 이동합니다. 다른 웹 컨테이너에 있는 주소로 이동하며 새로운 페이지에서는 Request와 Response객체가 새롭게 생성됩니다. 시스템에 변화가 생기는 요청(회원가입, 글쓰기 등)의 경우에는 redirection을 사용하는 것이 바랍직합니다.

profile
Web Developer

0개의 댓글