반응형
Uniform Resorce Identifier
리소스를 식별하는 통일된 방식
URL, URN ?
- URL은 리소스가 이 위치에 있음을 지정
- URN은 리소스에 이름을 부여 ex) isbn:1234566
- URN은 잘 사용되지 않아서 거의 URI = URL
URL 전체 문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
ex)
https://www.google.com:443/search?q=hello&hl=ko
https - 프로토콜
www.google.com - 호스트명
443 - 포트번호
/search - path
q=hello&hl=ko - query string
프로토콜(어떤 방식으로 자원에 접근할 것인가 하는 규칙)사용 ex) http, https, ftp
- http는 80, https는 443.... 포트는 생략가능
- https는 http에 보안 추가
userinfo
- 거의 사용하지 않음
host
- 호스트명
- 도메인명 또는 IP 주소를 직접 사용
port
- 접속 포트, 일반적으로 생략
path
- 리소스 경로, 계층적 구조 ex) /users/1
query
- key=value 형태
- 문자형태로 넘어감
- ?로 시작 &로 추가
fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보는 아님
웹 브라우저 요청 흐름
- 클라이언트 웹 브라우저에서 DNS 조회를 통해 서버 IP를 가져오고, 서버쪽에 HTTP 요청 메세지를 생성
GET /search?q=hello&hl=ko HTTP/1.1 HOST: www.google.com
- SOCKET 라이브러리를 통해 전달
- TCP/IP 연결 (IP, PORT 정보)
- 데이터 전달
- HTTP 메세지 포함 하여 TCP/IP 패킷 생성
- 서버에 패킷이 도착하면 원하는 요청을 처리하고 응답메세지를 만듦content type 에는 응답 형식과 언어를 담고 length에는 응답 형식의 길이를 담음
HTTP/1.1 200 ok
Content-Type: text/html;charset=UTF-8
Content-Length:3423
<html>
<body>..</body>
</html>
5. 응답 패킷을 클라이언트에 전송하여 웹 브라우저에서 html을 읽어서 렌더링
반응형
'강의정리 > 모든개발자를위한HTTP웹기본지식' 카테고리의 다른 글
HTTP 상태코드 요약 (0) | 2022.08.11 |
---|---|
클라이언트에서 서버로 데이터 전송 (0) | 2022.08.11 |
HTTP API를 만들어 보자 (0) | 2022.08.11 |
HTTP (0) | 2022.08.11 |
인터넷 네트워크 (0) | 2022.08.10 |
댓글