각 계층에 대한 설명 자료
http://wiki.hash.kr/index.php/OSI_7_%EA%B3%84%EC%B8%B5#n
Hypertext Transfer Protocol
웹서버와 웹브라우저의 소통을 위해 디자인 되었다.
HTTP message
를 통해 서버-클라이언트간 요청과 응답
을 하면서 데이터를 교환한다.
이 중 start line과 HTTP headers
를 묶어 요청이나 응답의 head
라고 하고, body
는 payload(전송되는 데이터 헤더와 메타데이터는 제외)
라고 이야기한다.
HTTP/1.1, HTTP/2는 TCP 기반이며 HTTP/3(현재)
는 UDP
기반 프로토콜로 발전하고 있다.
클라이언트 서버 구조
무상태 프로토콜 (Stateless), 무상태성
비연결성(Connectionless)
HTTP 메세지
단순함, 확장 가능
Uniform Resource Locator의 약자
인터넷 브라우저 창에서 주소를 입력할때의 주소는 URL
서버가 제공하는 환경에 존재하는 파일의 위치
예를들면 https://velog.io:443/ 사이트에 접속하게 되면, velog.io 주소가 가리키는 서버의 기본 폴더를 뜻한다.
로컬스토리지의 경로에 '/'를 이용하여 경로를 찾아가는 것처럼 인터넷 주소도 '/'를 이용하여 서버의 폴더에 진입하거나 파일을 요청할 수 있다.(물론 보안을 위해 보통 전부 오픈하지는 않는다.)
네트워크 상에서 웹 페이지, 이미지, 동영상 등의 파일이 위치한 정보를 나타낸다.
scheme
(통신 방식(프로토콜)을 결정), hosts
(웹 서버의 이름이나 도메인, IP를 사용하며 주소), url-path
(웹 서버의 루트 디렉토리부터 시작하여(host) 웹 페이지, 이미지, 동영상 등이 위치한 경로와 파일명)query
(웹 서버에 보내는 추가적인 질문) fragment
(일종의 북마크 기능을 수행. ex) URL에 fragment(#)와 특정 HTML 요소의 id를 전달하면 해당 요소가 있는 곳으로 스크롤을 이동할 수 있다.)특정 장소는 고유한 주소들을 가지고 있다. 마찬가지로 특정 PC에 접속을 하려면 주소를 알아야한다. 네트워크에 연결된 특정 PC의 주소를 나타내는 체계를 IP address(Internet Protocol address, IP 주소)라고 한다.
IPv4(Ip version 4)주소는 보통 xxx.xxx.xxx.xxx로 구성되어 있다.
localhost, 127.0.0.1 : 현재 사용 중인 로컬 PC를 지칭합니다.
0.0.0.0, 255.255.255.255 : broadcast address, 로컬 네트워크에 접속된 모든 장치와 소통하는 주소입니다. 서버에서 접근 가능 IP 주소를 broadcast address 로 지정하면, 모든 기기에서 서버에 접근할 수 있습니다.
IP주소가 가리키는 PC에 접근 할수 있는 통로(채널)을 의미한다.
사용중인 포트는 중복해서 쓸수 없다.
포트 번호는 0~ 65535 까지 사용할 수 있다.
0 ~ 1024번 까지의 포트 번호는 주요 통신을 위한 규약에 따라 역할이 이미 정해져있다.
역할이 정해진 포트는 URI를 쓸때 생략이 가능하다.
nslookup
명령어를 터미널에 입력하여 알수 있다.