제1장. 웹과 네트워크의 기본에 대해 알아보자
1.7.2 URL 포맷
http://user:pass@www.exxample.jp:80/dir/index.htm?uid=1#ch1
스키마, 자격정보 (크리덴셜), 서버주소, 서버포트, 계층적 파일 패스, 쿼리 문자열, 프래그먼트 식별자
- 서버주소: DNS 이름, IPv4 주소, IPv6 주소를 대괄호를 묶어서 지정 [0:0:0:0:0:0:0:1]
- 계층적 파일 패스: UNIX 디렉토리 지정 방법과 비슷
- 프래그멘트 식별자: 주로 취득한 리소스에서 서브 리소스 (도큐먼트 중간에 위치) 를 가리키기 위해서 사용
제2장. 간단한 프로토콜 HTTP
- HEAD: 메시지 헤더 취득: URI 유효성과 리소스 갱신 시간을 확인하는 목적
- OPTIONS: 제공하고 있는 메소드 조사
- TRACE: 루프백을 발생
- CONNECT: 프록시에 터널링 요구. 주로 SSL 이랑 TLS 등의 프로토콜로 암호화된 것을 터널링 시키기 위해서 사용
2.7 지속 연결로 접속량을 절약
2.7.1 지속 연결
TCP 연결을 계속 유지
2.8 쿠키를 사용한 상태 관리
쿠키는 서버에서 리스폰스로 보내진 Set-Cookie 라는 헤더 필드에 의해 쿠키를 클라이언트에 보존하게 됩니다. 다음 번에 클라이언트가 같은 서버로 리퀘스트를 보낼 때, 자동으로 쿠키 값을 넣어서 송신합니다.
리스폰스
<Set-Cookie: sid=13420...; path=/;expires=Wed, => 10-Oct-12 07:12:20 GMT>
리퀘스트
Cookie: sid=1342077..
제3장. HTTP 정보는 HTTP 메시지에 있다
3.3 인코딩으로 전송 효율을 높이다
3.3.2 압축해서 보내는 콘텐츠 코딩
- gzip (GNU zip)
- compress (UNIX 의 표준 압축)
- deflate (zlib)
- identity (인코딩 없음)
3.3.3 분해해서 보내는 청크 전송 코딩
3.4 여러 데이터를 보내는 멀티파트
MIME (Multipurpose Internet Mail Extensions: 다목적 인터넷 메일 확장 사양)
MIME 의 확장 사양에 있는 멀티파트 (Multipart) 라고 하는 여러 다른 종류의 데이터를 수용하는 방법을 사용하고 있음
- multipart/form-data: 파일 업로드에 사용
- multipart/byteranges
HTTP 메시지로 멀티파트를 사용할 때에는 Content-type 헤더 필드를 사용합니다.
3.5 일부분만 받는 레인지 리퀘스트
레인지 리퀘스트에 대한 리스폰스는 상태 코드 206 Partial Content 라는 리스폰스 메시지가 되돌아옴
3.6 최적의 콘텐츠를 돌려주는 콘텐츠 네고시에이션
콘텐츠 네고시에이션은 제공하는 리소스를 언어와 문자 세트, 인코딩 방식 등을 기준으로 판단하고 있습니다.
- Accept
- Accept-Charset
- Accept-Encoding
- Accept-Language
- Content-Language
서버 구동형 네고시에이션 (Server-driven Negotiation)
서버 측에서 리퀘스트 헤더 필드의 정보를 참고해서 자동적으로 처리를 합니다.
브라우저가 보내는 정보를 근거로 합니다.
에이전트 구동형 네고시에이션 (Agent-driven Negotiation)
OS 의 종류나 브라우저의 종류 등에 의해서 PC용과 스마트폰용의 웹 페이지를 자동으로 전환하는 것이 이에 해당합니다.
트랜스페어런트 네고시에이션 (Transparent Negotiation)
서버와 클라이언트가 각각 콘텐츠 네고시에이션을 하는 방식입니다.
제4장. 결과를 전달하는 HTTP 상태 코드
HTTP 상태 코드는 RFC2616 에 실려있는 것 만도 40종류가 있고 게다가 WebDAV (RFC4918, 5842) 와 Additional HTTP Status Codes (RFC6585) 등의 확장을 포함하면 60종류 이상이 있지만, 실제로 자주 사용되고 있는 것은 그 중에서 14종류 정도입니다.
- 200
- 204: 표시되는 화면 변하는 일 없음
- 206 Partial Content
- 301 Moved Permanently
- 302 Found
- 303 See Other
301, 302, 303 리스폰스 코드가 되돌아 오면, 대부분의 브라우저에서는 POST 를 GET 으로 바꾸어서 리퀘스트의 엔티티 바디를 삭제하고 리퀘스트를 자동적으로 재송싱하도록 되어 있습니다.
- 304 Not Modified: 리스폰스 바디에 어떤 것도 포함되면 안됨. 리다이렉트와는 관계 없음
- 307 Temporary Redirect
- 400 Bad Request: 브라우저는 이것을 200 OK 와 같이 취급합니다.
- 401 Unauthorized
- 403 Forbidden
- 404
- 500
- 503 Service Unavaliable: 서버 과부하, 점검중. 이 상태가 해소되기까지 시간이 걸리는 경우에는 Retry-After 헤더 필드에 따라 클라이언트에 전달하는 것이 바람직핣니다.
제5장. HTTP 와 연계하는 웹 서버
'Comupter science > 스터디' 카테고리의 다른 글
리눅스 시작하기 (0) | 2022.08.22 |
---|---|
MDN 으로 JavaScript 공부하기 (0) | 2022.07.30 |
Code It 강의 (0) | 2022.03.29 |
Git (0) | 2022.03.11 |
CS50: 컴퓨팅사고 (0) | 2022.03.10 |