XMLHTTP와 ServerXMLHTTP의 차이점
웹 서비스에서 데이터를 엑셀로 가져올 수 있는 엑셀 애드인을 작성하려고 합니다.
사용자는 추가 기능에서 제공하는 기능 이름을 입력하기만 하면 됩니다.저는 VBA에서 HTTP 요청을 구현하는 두 개의 기사, 즉 XMLHTTP와 ServerXMLHTTP를 찾았습니다.
저는 그것들을 사용하는 데 어려움을 겪고 있습니다.어떤 것을 사용해야 할지 모르겠습니다.XMLHTTP와 ServerXMLHTTP의 차이점은 무엇입니까?
다부즈,
팀과 제이 둘 다 훌륭한 맥락과 간결한 논평을 제공합니다.간단히 몇 가지 추가하고 맥락을 설명해 보겠습니다.
기본적으로 XMLHTTP 개체는 웹 사이트/웹 서버/웹 서비스에서 데이터를 요청하는 데 사용되는 XMLHTTP 요청을 만드는 데 사용됩니다.자세한 내용은 위키백과 링크를 참조하십시오. http://en.wikipedia.org/wiki/XMLHttpRequest
일반적으로 XMLHTTP는 응용프로그램을 사용하여 웹 서비스에 요청할 때와 같이 서버에 클라이언트로 통신할 때 일반적으로 사용됩니다.XMLHTTP 개체는 FTP(파일 전송 프로토콜), URL 캐싱 및 기타 유용한 도구와 같은 다양한 클라이언트 중심 전송 방법에도 사용됩니다.간단히 말해, XMLHTTP 개체는 FTP 연결을 통해 서버에 액세스하는 경우, 저장소의 파일 시리즈 또는 클라이언트의 데이터를 처리하기 위한 웹 서비스에 액세스하는 경우 등 어떤 종류의 서버에 요청하고 클라이언트에 관심 있는 항목을 요청하는 데 사용됩니다.
이와는 대조적으로 ServerXMLHTTP는 서버 간 통신, 응용프로그램(클라이언트) 및 클라이언트의 요청 처리를 목적으로 합니다.ServerXMLHTTP Object는 현재 연결에서 대상으로 전송/수신된 정보가 향후 데이터 트랜잭션을 위해 유지됨을 의미하는 상태를 활성 상태로 유지하지만 "URL 캐싱, 프록시 서버의 자동 검색, HTTP/1.1 청킹, 오프라인 지원,"과 같은 특정 XMLHTTP 기능도 적극적으로 지원하지 않습니다.서버XMLHTTP 개체가 사용하는 http 클라이언트 스택에 대해 "Gopher 및 FTP 프로토콜 지원"을 제공합니다.
기술적인 관점에서 XMLHTTP 개체는 기능을 위해 WinInet(Windows Internet Explorer)을 사용하는 반면, ServerXMLHTTP 개체는 클라이언트 스택을 사용합니다.WinInet dll은 Windows 인터넷 프로토콜 관리의 백본이며 dll은 HTTP, HTTPS, FTP 및 유사한 요청을 처리하는 데 사용됩니다.
반대로 ServerXMLHTTP 오브젝트가 HTTP 클라이언트의 별도 "세션"인 새 클라이언트 http 스택을 작성할 때 이 스택은 필수입니다.별도의 세션을 사용하면 메모리 및 소켓 연결 가용성에 따라 ServerXMLHTTP Object의 여러 인스턴스가 지정된 시간에 활성화될 수 있습니다.
간단히 말해서, 위의 의견에서 나온 정보 외에도 XMLHTTP Object는 종종 정보를 요청하고 어떤 방식으로든 사용하는데, 보통 클라이언트로 사용됩니다.비슷하게 유용하지만 종종 다르게 사용되는 ServerXMLHTTP 개체는 데이터를 요청하거나, 데이터를 보내거나, 다른 응용 프로그램으로 수신된 데이터를 다른 응용 프로그램으로 상대적으로 효율적으로 전달하는 데 사용될 수 있습니다.이는 실시간 응답이 필요한 비즈니스 애플리케이션이나 일련의 요청이 있는 고객에게 데이터를 제공하는 데 사용됩니다. 이러한 요청에는 조건이 포함되어 있을 수 있습니다.
바라건대 그것이 그 둘 사이의 차이점을 밝혀주기를 바랍니다.XMLHTTP 유형 요청의 특정 부분을 사용하는 것에 대한 SO 질문/답변뿐만 아니라 MSDN 및 VB, VBA 및 Microsoft Office에 대한 인터넷/XMLHTTP 요청 관련 문서를 제공하는 기타 사이트에 대한 심층 연구를 읽어보면 더 많은 내용을 확인할 수 있습니다.
도움이 되시거나 다른 질문/생각이 있으시면 말씀해 주십시오.
~JOL
나는 방금 차이에 부딪혔습니다.웹 서버(IIS)가 익명 액세스가 아닌 윈도우즈 인증만 허용하도록 구성된 경우 서버 XMLHTTP 호출은 인증 오류와 함께 실패하지만 XMLHTTP 호출은 그렇지 않습니다.XMLHTTP 개체는 필요할 때 Windows 인증 자격 증명 전송을 자동으로 처리하는 것 같습니다.ServerXMLHTTP 개체에 NetworkCredentials를 추가하는 것이 최선의 해결책이 될 것으로 생각되지만 일반 텍스트 id/pwd를 명시적으로 전달하는 기본 인증만 찾을 수 있었습니다(분명히 허용되지 않음).
ServerXMLHTTP 개체는 winhttp를 사용하는 반면 XMLHTTP는 winine을 사용합니다.
Wininet은 인증 및 프록시 구성과 같은 문제를 구문 분석하므로 ServerXMLHTTP를 사용할 때와 같은 문제가 나타나지 않습니다.그러나 XMLHTTP 내의 제한된 유연성으로 인해 서버 및 대상 엔드포인트 인증 메커니즘을 협상해야 함으로써 서버XMLHTTP를 사용할 때 추가적인 책임을 져야 할 수 있습니다. 그러나 winhttp 내에는 이를 지원하는 방법이 있습니다.
더 많은 클라이언트 기반 XMLHTTP를 더 구성 가능한 강력한 ServerXMLHTTP 개체 및 클래스로 포팅할 때, 왜 그렇게 오래 전에 하지 않았는지 궁금할 수 있습니다.
불행하고 이제는 사라진 WPAD 지원에 대해서도 저를 시작하게 하지 마세요.:)
제게 정말 도움이 된 것은 그것입니다.
개체를 정의한 후:
Dim objHTTP As Object
Set objHTTP = createObject("MSXML2.ServerXMLHTTP")
...
그런 다음 다음 두 줄을 포함합니다.
' --- Disregard any Proxy Settings and go straight to the IP address
objHTTP.SetProxy 1
언급URL : https://stackoverflow.com/questions/11605613/differences-between-xmlhttp-and-serverxmlhttp
'programing' 카테고리의 다른 글
| SQL developer를 사용하여 오라클 DB의 날짜별 레코드 수 및 그룹 수 계산 필요 (0) | 2023.06.19 |
|---|---|
| UI 텍스트 필드의 커서 숨기기 (0) | 2023.06.19 |
| Pandas 데이터 프레임에서 만든 Excel 시트에 하이퍼링크를 _http 방법에 추가합니다. (0) | 2023.06.19 |
| Mongo 업데이트 어레이 요소(.NET 드라이버 2.0) (0) | 2023.06.19 |
| 커밋이 처음 생성된 GitHub에서 꺼내기 요청 찾기 (0) | 2023.06.19 |