어떤 시나리오에서 'netsh http add urlacl'을 사용합니까?


14

어떤 시나리오에서 그러한 명령을 사용 해야하는지 이해하려고합니다.

netsh http add urlacl url=http://server1:1234/ user=Everyone

hosts특정 주소를 컴퓨터에 연결할 수 있는 파일을 사용하는 것과 같은가요 ? (나는 그렇게 생각하지 않습니다).

문서가 아닌 그 (나에게) 분명히 :

Netsh는 현재 실행중인 컴퓨터의 네트워크 구성을 로컬 또는 원격으로 표시하거나 수정할 수있는 명령 줄 스크립팅 유틸리티입니다. Netsh는 또한 지정된 컴퓨터에 대해 배치 모드에서 명령 그룹을 실행할 수있는 스크립팅 기능을 제공합니다. Netsh는 보관을 위해 또는 다른 서버를 구성 할 수 있도록 구성 스크립트를 텍스트 파일로 저장할 수도 있습니다.

질문:

누군가 내가 그것을 사용하고 싶은 실제 시나리오 (+ 구현)를 제공 할 수 있습니까?

추가 정보 : (C #을 통해) 액세스하려고 한 남자 가이 질문을 읽었습니다 .

http://localhost:1234 작동하지만

http://server1:1234 실패

(그러나-왜 그가 hosts그것을 해결할 수 있는 파일을 사용하지 않았는지 이해하지 못합니다 )-그러나 다른 사람이 netsh그 일 을 할 것이라고 대답했습니다 .
그래서 여기에 뭔가 빠진 것 같습니다.


지난 1 년 동안 매일 호스트 파일이 어떤 용도로 사용되는지 완벽하게 알고 있습니다. 내 질문의 코드가 호스트 파일과 어떻게 다른지 이해하지 못합니다. 둘 다 똑같이하는 것 같습니다. 그리고 슬프게도, 당신은 당신의 대답에 어떤 차이를 공급 didnt는
— Royi Namir에게

답변:


18

파일 netsh http의 구성과 http.sys다른 구성을 수정할 때 hosts훨씬 낮은 수준의 Windows에서 작업 할 때 사용 합니다. 이 수준은 핸들이 HTTP 서버의 실행하는 하나입니다 컴퓨터에 로컬 때문에 요청이 오는 우려 로 오히려 사람이가는 것보다, 컴퓨터 밖으로 인터넷에.

URL 요청을 제공하기위한 Windows의 아키텍처입니다.

http.sys 아키텍처

http.sys HTTP 트래픽을 수신하고 URL을 기반으로 요청을 프로세스로 디스패치하는 드라이버이므로 여러 프로세스가 동일한 포트에서 HTTP 트래픽을 청취 할 수 있습니다.

http.sys이전에는 응용 프로그램이 엔드 포인트 (IP : Port)에서 소켓을 열어 들어오는 트래픽을 듣고 구문 분석했습니다. 소켓 모델을 사용하면 주어진 시간에 한 응용 프로그램 만 끝점을 수신 할 수 있기 때문에 모든 응용 프로그램에서 포트 80 (http) 및 443 (https)을 사용할 수 없다는 문제가있었습니다.

때 인터넷 정보 서비스 (IIS) 웹 서버 또는 HTTP 서버 API를 사용하는 응용 프로그램이 일부 HTTP 요청 경로 듣고, 그들에 URL 접두사를 등록해야합니다 http.sys. 우리는이 프로세스 등록을 호출합니다 .

들어오는 요청이 선택되어 http.sys올바른 등록 된 응용 프로그램으로 전달되면이를 라우팅 이라고 합니다.

관리자 모드에서 실행중인 모든 응용 프로그램은 URL을 등록 할 수 있습니다. 비 관리자 응용 프로그램 netsh http add urlacl 은 요청을 수신 하기 위해 사용해야 합니다.

결론 : 비 관리자 모드에서 실행되는 저수준 URL 서버를 구축하지 않으므로 사용할 이유가 없습니다 netsh http add urlacl.

참고 문헌 :


"사용자가 함께 .... 당신의 IIS에 연결하고 싶어"당신이 뭔가이 같은 시나리오를 제공 주실 래요
— Royi Namir

이것은 응용 프로그램이 IIS와 나란히 작동하는 방법입니다. URL 접두사를 등록하면 응용 프로그램은 IIS를 통하지 않고 직접 모든 요청을 가져옵니다. 즉, IIS의 확장으로 작성 될 필요가 없으며 IIS를 설치할 필요도 없습니다. 실제로 http.sys가 IIS와 얼마나 독립적인지는 잘 모릅니다.
— harrymc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.