2014-07-05 1 views
1

www.google.com과 같은 웹 사이트를 탐색 할 때 http://www.google.com이되도록 http 앞에 추가하는 브라우저입니까, 아니면 초기 요청이 프로토콜 이름없이 사용됩니까?웹 사이트 URL에 http를 추가했습니다.

로컬로 호스팅 된 URL에 대해 apache 웹 서버를 사용하여 우분투 시스템에서 시도했습니다. 초기 패킷이 TCP 핸드 셰이크임을 확인한 후 http://www.example.com에 대한 요청입니다. 초기 TCP SYN 패킷도 http://www.example.com 또는 www.example.com으로 이동하려고 했습니까?

P. Wireshark에서 TCP SYN 패킷에는 HTTP 헤더가 없습니다.

답변

2

브라우저에서 추가합니다. 브라우저마다 잘못된 URL을 구문 분석하여 올바른 URL로 구문 분석하는 방법에 대한 논리가 다릅니다. 예를 들어 일반 단어를 입력하면 일부 브라우저는 오류 페이지를 반환하고 일부 브라우저는 검색 페이지 (예 : google 또는 bing)를 엽니 다. 같은 일이 불완전 URL을 발생 (HTTP없이 예 : 스키마)

전체 과정은 다음과 같이이다 :

  1. 사용자 유형은 "URL"
  2. 브라우저 (필요한 경우) 구문 분석 및 수정을 시도하는 URL을 (예 : 새 주소에 http를 추가하고, 검색 기록에있는 https를 사용하는 사이트에 https를 추가하고, 잘못된 입력에 대한 검색/오류 페이지를 준비하십시오.)
  3. 브라우저는 URL 도메인에 대한 DNS 조회를 수행합니다 .example.com ~ 93.184.216.119)
  4. 브라우저가 TCP 연결을 설정합니다. URL에 표시된 포트 또는 스키마에서 암시 한 포트에 93.184.216.119로 설정합니다 (예 : HTTP의 경우 80, HTTPS의 경우 443). TCP는 스키마에 대해 알지 못합니다.
  5. HTTPS의 경우 브라우저는 SSL 세션을 연결 해제합니다.
  6. 브라우저가 HTTP 요청을 보내고 응답을받습니다.
+0

그러면 TCP SYN 패킷이 'http : // www.example.com'으로 이동 했습니까? 우분투 컴퓨터의 wireshark에서 그 패킷에 HTTP 헤더가 없기 때문에 묻습니다. – Jake

+1

TCP SYN (TCP 3 방향 핸드 셰이크의 일부)은 TCP 통신 설정입니다. 이 작업이 완료된 후에 만 ​​브라우저는 HTTP 헤더 (일반적으로 SYN ACK 다음에 오는 네 번째 TCP 패킷)를 보냅니다. –

1

http://은 응용 프로그램 계층 프로토콜을 지정합니다. 프로토콜을 지정하지 않으면 브라우저는 일반적으로 HTTP를 사용합니다. 다른 가능성은 ftp:// 또는 (현대 브라우저에서 더 이상 지원되지 않음) gopher://입니다.

TCP는 HTTP보다 낮은 수준입니다. TCP 연결이 설정 될 때 응용 프로그램 계층 프로토콜은 중요하지 않습니다. TCP의 관점에서 http://이 나타내는 유일한 것은 명시 적으로 지정되지 않은 경우 사용할 기본 포트 번호입니다. HTTP는 기본적으로 포트 80으로, FTP는 포트 21로 기본 설정됩니다. 브라우저는 TCP 세션이 설정 될 때까지 HTTP (또는 FTP 등)를 말하기 시작하지 않습니다.

관련 문제