HTTP란?
http 요청구조
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)올때 주로 사용하는 Method. 데이터 생성/수정/삭제 없이 받아오기만 할때 사용된다.
가장 간단하고 많이 사용되는 HTTP Method 언급한대로 주로 데이터를 받아올때 사용되기 때문에 request에 body를 안 보내는 경우가 많다.
: 데이터를 생성/수정/삭제 할때 주로 사용되는 Method. 데이터를 생성 및 수정 할때 많이 사용하기 때문에 대부분의 경우 requst body가 포함되서 보내진다.
: 주로 요청 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
: 실제로 웹 브라우저는 다른 페이지로 이동했음을 알 수 없습니다.
웹 브라우저에는 최초에 호출한 URL이 표시되고, 이동한 페이지의 URL 정보는 확인할 수 없습니다. 이동 할 URL로 요청정보를 그대로 전달한다.
시스템에 변화가 생기지 않는 단순 조회 요청(글 목록 보기, 검색)의 경우 forward로 응답하는 것이 바람직합니다.
: Redirect는 Web Container로 명령이 들어오면, 웹 브라우저에게 다른 페이지로 이동하라고 명령을 내립니다. 그러면 웹 브라우저는 URL을 지시된 주소로 바꾸고 해당 주소로 이동합니다. 다른 웹 컨테이너에 있는 주소로 이동하며 새로운 페이지에서는 Request와 Response객체가 새롭게 생성됩니다. 시스템에 변화가 생기는 요청(회원가입, 글쓰기 등)의 경우에는 redirection을 사용하는 것이 바랍직합니다.