- URI(Uniform Resource Identifier) : 리소스를 식별하기 위한 식별자
- URL(Uniform Resource Locater) : 리소스의 위치를 식별하기 위한 URI의 하위개념, 흔히 웹 주소
- URN(Uniform Resource Name) : 인터넷 상의 자원을 이름으로 표시하는 방법
👉URI의 구성요소
부분 | 명칭 | 설명 |
---|---|---|
file://, http://, https:// | scheme | 통신 프로토콜 |
127.0.0.1, www.google.com | host | 웹 서버, 도메인 또는 IP |
:80, :443, :3000 | port | 웹 서버에 접속하기 위한 통로 |
/search, /Users/username/Desktop | path | 파일이 위치한 경로 |
q=JavaScript | query | 웹 서버에 전달하는 파라미터(추가적인 정보) |
- 웹을 이용하기 위한 통신 규약
- 모든 데이터가 평문으로 암호화 없이 전송되어 네트워크 공격에 의해 정보가 유출 될 수 있음
- 기본 포트 : 80
- 사용자->서버 Request, 서버->사용자 Response로 이루어짐
"웹 서버에 데이터를 요청하거나 전송할 때 보내는 패킷"
- GET
- URL에 해당하는 자료 전송을 요청
- 가장 일반적인 형태
- 보낼 수 있는 데이터 크기 : 최대 4kb
- POST
- 서버가 처리할 수 있는 자료를 전달
- 인수 값을 URL을 통해 전송하지 않으므로 링크를 통해 해당 페이지를 볼 수 없음
- 데이터가 URL을 통해서 노출되지 않음
- 파일 업로드, 글 저장/수정/삭제 및 데이터 전송
- HEAD
GET과 같은 요청이나 자료에 대한 정보만을 받음- PUT
메시지에 포함되어 있는 데이터를 지정한 URI 장소에 그 이름으로 저장- DELETE
URI에 지정되어 있는 자원을 서버에서 제거- TRACE
요구메시지의 최종 수신처까지 루프백 검사용으로 사용- OPTIONS
서버가 특정 URL에 대해 어떠한 HTTP method를 지원하는지 질문- CONNECT
프록시가 사용하는 요청
Method / Path / Version
🔸Method : 서버에 요청 시 수행하고자 하는 동작
🔸Path : 서버에 요청하는 웹 리소스의 경로
🔸Version : HTTP 버전
Ex. GET / URI / HTTP/1.1
"서버의 추가 정보를 전달하는 데이터 부분"
🔸Host : 데이터를 보내는 서버 주소
🔸Cookie : 사용자 식별하기 위한 정보
🔸User-Agent : 사용자가 사용하는 프로그램의 정보
🔸Referer : 페이지 이동 시 이전 URI의 정보
🔸Content-Type : 전달하는 데이터의 처리방식과 형식
"헤더 정보 뒤에는 실제 데이터가 전달됨"
실행결과 코드 | 내용 | 설명 |
---|---|---|
100번대 | 정보전송 | Request 받고, 처리 중에 있음 |
200번대 | 성공 | Request를 성공적으로 처리 |
300번대 | 리다이렉션 | Request 완료를 위해 추가 동작이 필요 |
400번대 | 클라이언트 측 에러 | 클라이언트 요청을 처리할 수 없어 오류 발생 |
500번대 | 서버 측 에러 | 서버에서 처리하지 못하여 오류 발생 |
🔹Version : HTTP 버전
🔹Status code : 사용자의 요청에 대한 서버의 처리 결과
"사용자와 상호작용하기 위한 데이터를 담는 부분"
🔹Content-Type : 응답 데이터를 웹 브라우저에서 처리할 방식과 형식
🔹Content-Length : 응답 데이터의 길이
🔹Server : 서버가 사용하느 소프트웨어의 정보
🔹Allow : 허용되는 Method 목록을 사용자에게 알려줌
🔹Location : 300번 영역의 응답코드 사용 시 변경된 웹 리소스의 주소를 나타냄
🔹Set-Cookie : 사용자에게 쿠키 발급할 때 사용