개요
이번에 Naver, Google, .. 과 같은 소셜 로그인 / 회원가입 기능을 공부하니, 이 주제에 대한 공부가 필요해 보여서 시작하게됬다.
HTTP? (HyperText Transfer Protoco) 의 약자
Server와 Client간 HTML,CSS,JavaScript와 같은 파일들을 주고 받을 때 상호 알아들을 수 있도록 정한 약속. 클라이언트에 의해 전송되는 메시지는 Request, 서버에서 응답으로 전송되는 메세지를 Response라고 한다.
Request
GET /1.html HTTP/1.1
Request 시 첫번째 줄에 반드시 있어야 하는 내용이다.
1. HTTP Method : GET, POST, PUT 등의 서버가 수행할 동작을 나타낸다.
2. 웹 서버에 요청하는 정보를 의미한다. 절대 경로 URL등으로 표기한다.
3. 마지막에는 HTTP의 버젼이 들어간다.
Header
User-Agent: Mozilla/5.0 ...
Accept: ...
User-Agent : 웹 브라우저의 다른 표현, 요청하는 웹 브라우저가 어떤 웹 브라우저인지 표시한다.
Accept-Encoding : 웹 브라우저와 웹 서버가 서로 통신할 때 응답하는 데이터의 양이 많으면 그걸 압축해서 전송하면 웹 브라우저가 그것을 압축을 풀어서 처리할 수 있는데, 이 떄 어떤 압축방식을 지원하는지 적어놓은것
If-Modified-Since: 매번 요청할때마다 html파일을 보내준다면, 업데이트 되지도 않는 파일을 보내기엔 너무 비효율 적이다. 이럴때 해당 시간을 확인후 이후 업데이트 되지 않았다면 전송하지 않는다.
그 외에도 다양한 속성들이 Header에 포함된다.
Response
HTTP/1.1 404 Not Found
HTTP version / status Code / pharse
버젼 / 응답 결과 코드 / 응답 결과 내용 의 내용을 Response는 반드시 가진다
Header
Content-Type: text/html
Content-Length: 1434
Content-Encoding: gzip
Last-Modified: Tue, 17 Jul 2018 23:28:26 GMT
Content-Type : 해당 응답이 어떤 형식의 파일인지 명시한다
Content-Length : byte단위로 파일의 크기를 명시한다
Content-Encoding: 압축 방식을 명시한다
Last-Modified : 마지막으로 수정된 일시를 명시한다.
참고
생활코딩 WEB2 - HTTP( https://opentutorials.org/course/3385 )