HTTP (HyperText Transfer Protocol) 은 웹에서 클라이언트인 브라우저와 서버가 통신 할 때 사용하는 규약
프로토콜 : 통신 규약
웹 클라이언트 ( 크롬, 사파리, 엣지 등 ) 는 브라우저이고, 웹 서버 ( 제우스, 웹로직, 웹스피어 등) 는 순수 국내 기술으로 우리가 작성하는 웹 애플리케이션은 웹 서버 컴뷰터에 위치
비연결성
무상태
--> 사용자가 버튼을 누르거나 하이퍼링크를 클릭하는 순간 브라우저는 HTTP 요청 URL을 서버에 전달
http: // localhost : 8080 / BoardWeb / board / login.html
http - 프로토콜 : 서버에 파일을 요청할 때 사용한 프로토콜
// - 프로토콜 구분자 : 프로토콜과 호스트 이름을 구분하는 구분자
localhost - 호스트 : 웹 서버가 설치된 컴퓨터
8080 - 포트 : 호스트 컴퓨터에서 8080 포트를 사용하는 서버
BoardWeb - 웹 애플리케이션 : 8080 포트를 사용하는 서버에서 실행되는 BoardWeb 이라는 웹 애플리케이션
board - 디렉터리 : BoardWeb 애플리케이션의 board 디렉터리
login.html - 파일 : board 디렉터리에 있는 login.html 파일
start - line
HTTP 요청 프로토콜에서 가장 첫 번째 줄에 해당
요청 방식 : 브라우저가 웹 서버에 요청을 전달하는 방식
요청 URL : 브라우저가 서버에 위치한 웹 애플리케이션의 특정 자원을 요청할때 사용
ex)
http: // localhost : 8080 / BoardWeb / board / login.html
--> 이때 URI 는 포트번호 이후의 문자열로 BoardWeb / board / login.html 이다
프로토콜 / 버전
GET BoardWeb/board/login.html HTTP/1.1message - header
키 (key) : 값 (value)로 주로 저장
Key
message body
status - line
HTTP 응답 프로토콜에서 가장 먼저 등장하며, HTTP 버전, 상태 코드, 상태 메시지가 설정
상태 코드
상태 메시지
--> 상태 코드의 의미를 쉽게 설명
message - header
message - body
서버에 전달한 URI 뒤에 물음표(?) 를 추가하고 키 (key) = 값 (value) 형태로 사용자가 입력한 정보를 전달하는데, 만약 입력한 정보가 여러 개일 경우에는 & 로 연결
HTTP 요청과 함께 전달된 문자열을 쿼리 문자열이라함
사용자가 입력한 정보가 외부에 노출돼도 상관없는 경우 주로 사용
GET 과 달리 쿼리 문자열이 요청 URI 가 아닌 message-body에 포함되어 전달된다는 것이 중요 !
사용자가 입력한 정보가 외부에 노출되면 안되는 아이디/비번, 계좌번호 같은 주요한 데이터를 처리할때 주로 사용