기본적으로 자원 하나에 대해서 하나의 연결을 만든다.
HTTP 요청 프로토콜은 크게 세 가지로 구성된다.
HTTP request의 첫 번째로 설정되는 라인이다.
start-line도 요청과 관련하여 요청방식, 요청URI, HTTP 버전 이 세 가지 정보가 포함된다.
ex) GET/servletStudy/studylist.html HTTP/1.1
요청 방식(HTTP Method)
요청 URI(Request target)
❗️ URL과 URI
URL(Uniform Resource Locator)은 구체적인 파일 자원 등에 대한 주소
URI(Uniform Resource Identifier)은 프로그램 실행경로와 파라미터 등을 포함한 형태.
http://www.servletstudy.com/studylist/javastudy.html -> URL
http://www.servletstudy.com/studylist/javastudy.html -> URI :/studylist부터
HTTP 버전
Key | 설정되는 정보 |
---|---|
Host | 요청이 전송되는 target의 host url |
User-Agent | 요청을 보내는 클라이언트의 대한 정보 |
Accept | 해당 요청이 받을 수 있는 응답(response)타입 |
Connection | 해당 요청이 끝난 후에 클라이언트와 서버가 계속 네트워크 커넥션을 유지할 것인지 아닌지 지시 부분 |
Content-Type | 해당 요청이 내는 메세지 body 타입 |
Cookie | Key-Value 형태 쿠키 정보 |
요청 프로토콜 : 브라우저가 생성
응답 프로토콜 : 서버가 생성
response 상태를 나타내주는 부분. status-line에는 HTTP 버전, 상태코드, 상태메세지 이 세 가지가 나타난다.
HTTP 버전
상태 코드(status code)
요청에 대한 응답 상태를 나타내는 코드.
상태 코드 | 내용 |
---|---|
200 | 정상적인 처리코드 |
403 | 요청에 대한 권한이 없다는 코드 |
404 | 서버에 존재하지 않다는 코드 |
405 | 요청 방식(Method)을 서버에서 지원하지 않는다는 코드 |
500 | 처리 과정에서 예외(Exception) 발생했다는 코드 |
상태 메세지(status Text)