애플리케이션
웹 애플리케이션
프레임워크 HTTP 웹브라우저
애플리케이션 서버 플랫폼
JVM
플랫폼
서버측 클라이언트 측
___________________________________________________
그림처럼 웹서버와 웹클라이언트는 HTTP프로토콜을 통해 통신한다.
>요청시 HTTP 상세 내용
- Request Header
a. 메서드
GET(read), POST(update), PUT(create), DELETE(delete)
b. URI
what에 해당한다.
c. HTTP 버전
- Message Header : 요청의 부가정보들
d. Accept
웹 클라이언트가 받을 수 있는 데이터의 종류.
HTTP통신 가능한 소프트웨어면 클라이언트가 될 수 있다.
소프트웨어마다 받을 수 있는 정보가 달라서 지정이 필요하다.
지정하면 웹 서버에서 불필요한 정보를 송신하지 않아도 된다.
e. Accept-Language
웹 클라이언트가 받을 수 있는 언어의 종류.
f. User-Agent
웹 브라우저의 종류와 버전.
클라이언트 종류에 맞춰서 최적의 콘텐츠를 돌려주기 위해서이다.
스마트폰이면 스마트폰에 맞혀서 콘텐츠를 내려준다.
사이트 사용자의 브라우저 통계도 알 수 있다.
g. Host
요청 보낸곳의 호스트명과 포트번호.
> 응답시 HTTP 상세 내용
- 상태라인
a. http버전
b. 상태코드
요청의 성공/실패 여부
1XX : 요청 처리가 계속 되고 있음
2XX : 성공
3XX : 리다이렉션
4XX : 요청 실패 (클라이언트측 에러)
401 : 사용자 인증 실패
403 : 권한 없음
404 : Not Found
5XX : 요청 실패 (서버측 에러)
500 : Internal Server Error
c. 응답 구문
OK같은 메시지
- Message Header
응답의 부가정보들
- Message Body
메시지의 본문. HTML이나 콘텐츠들.
> HTTP는 요청 한번에 하나의 리소스만 !
어떤 html 리소스를 요청했을때 html 태그 안에 이미지 태그가 있으면 이미지 리소스를 가져오는 http 요청이 한 번 더 가게된다.
> 파일명 생략하고 요청 보내면 index.html이나 default.html로