생활코딩 HTTP 강의
웹의 구성요소 4가지
- 웹 페이지를 만드는 HTML
- 웹페이지를 방문할 수 있게 하는 URL
- 주소체계를 주고받는 Web Brower & Web Server
- Web Browser <-> Web Server 서로 통신할 때 주고받는 HTTP
HTTP: HyperText Transfer Protocol
HTTP는 클라이언트의 request와 서버의 response상의 메세지 역할을 해준다.
웹사이트에서 크롬의 경우 우클릭, 검사(브라우저마다 다르다.)를 하면 Network 메뉴에서 리퀘스트와 리스폰스의 소스를 볼 수 있다. 웹브라우저는 클라이언트가 요청한 정보를 웹서버에 대신 물어주는 역할을 하고 웹서버의 응답을 받아 화면에 띄워준다.
Request Header
Request Header consists <u>request line & request headers</u>(a.k.a request message header) and a <u>blank line</u>(separates header and body) along with <u>request message body</u>.
-
Request Line Example
.jpg)
-
Request Headers
- Host: 주소. 웹서버가 여러 도메인을 호스팅할 시, 이 주소를 바탕으로 다른 정보를 송출(가상호스트)
- User-Agent: 클라이언트의 웹브라우저, OS 정보. 로봇의 접근을 파악할 수 있다.
- Accept-Encoding: 브라우저와 서버사이의 통신에 데이터가 클 때 압축전송을 하고 브라우저가 받아 압축을 풀어 처리하는데 이 때 브라우저가 쓰는 압축방식을 보여준다.
- If-Modified-Since: 서버에서 받아온 파일이 언제 받아 온건지 서버에 알려준다. 만약 여기에 표시된 날짜 이후로 업데이트가 있었다면(서버에 새 버전이 있다면) 서버에서 파일을 새로 전송해주고 그게 아니라면 파일전송은 불필요한 일이므로 처리하지 않는다.
Response Header
Response Header, just like request header, starts with status line and response headers then a blank line to separate header and message.
-
Status Line
.jpg)
- HTTP Version: 말 그래도 HTTP의 버전
- Status Code: 응답결과
- 200번대: 성공적으로 응답했다는 뜻
- 400번대: 클라이언트쪽의 에러
- 500번대: 서버쪽의 에러
- Phrase: 응답결과를 풀어서 설명
-
Response Headers
- Content-Type: 컨텐츠가 어떤 파일인지 설명
- Content-Length: 컨텐츠의 사이즈를 나타내준다. 단위는 Byte.
- Content-Encoding: 컨텐츠가 압축된 방식을 보여준다.
- Last-Modified: 컨텐츠가 마지막으로 수정된 날짜
How to get IP Address in Java (유투브 강의)
URL 객체 생성