当前位置: 首页 > news >正文

[IE编程] 了解Urlmon.dll和Wininet.dll

Windows 网络编程常用的API库有Winsock,Wininet 和 Urlmon。Winsock 实现了基本的套接字(socket)功能, 而 wininet 和 urlmon在winsock 的基础上封装了HTTP, FTP,WWW 的协议。这篇文章 《Under the Hood: WinINet》(http://blogs.technet.com/askperf/archive/2007/08/21/under-the-hood-wininet.aspx)可以很好帮助了解wininet 和 urlmon 的功能和区别。

wininet.dll

  • Caching, History, Cookie Management
  • Authentication - Basic, NTLM, Kerberos
  • Connections - Both secure (schannel) and non-secure
  • Dial-up, Direct, Proxy
  • Protocol and HTTP header management

urlmon.dll

  • URL Parsing – breaking down URLs into the protocol used (HTTP, HTTPS, FTP, File, Gopher), address, and target.
  • GZIP compression/decompression – provides support for GZIP HTTP compression to deflate and inflate data. IE6 and IE7 handle this slightly differently. In IE7 this functionality is handled by WinINet.
  • Security and Zone Management – Identifies security zones, zone crossings, permissions, etc.
  • Asynchronous Pluggable Protocol Filter/Handler – correlates appropriate the protocol to the registered handler (HTTP, HTTPS, MAILTO, FILE, etc.).
  • Code Download Management, Install On Demand, and Just-In-Time.
  • Forms requests from the URL – creates the outbound data package and hands it off to WININET for transfer.
  • MIME (Multipurpose Internet Mail Extension) type management – examines the MIME type for data returned in an HTTP response and correlates that type with a specific handler. For example, URLMON would open a Microsoft Word document (MIME type .doc) with Microsoft Word. If the MIME type is not clear from the response, URLMON is capable of examining the binary data to determine the appropriate MIME type. MIME is described more thoroughly in RFC1521.

相关文章:

  • 算法练习--小球下落
  • 在LINQ to SQL中处理“更新已被其它用户删除对象”的错误
  • 算法练习--打印Cantor 数表
  • 企业中的4种人才
  • Sun的启示------技术在企业发展中的分量
  • Computer Science 学习第四章--CPU 指令集及指令处理
  • 领域模型驱动应用心得....
  • 算法练习--除法
  • 移动互联网 3G时代的“新宠”
  • 算法练习--双基回文数
  • C# 格式化显示金额函数
  • [Web开发] IE8的User-Agent 字符串
  • 算法练习--素数环
  • 算法练习--判断连续相同字符串
  • [IE编程] IE8的SDK 下载
  • Cumulo 的 ClojureScript 模块已经成型
  • ES6系列(二)变量的解构赋值
  • java取消线程实例
  • nginx 负载服务器优化
  • Rancher如何对接Ceph-RBD块存储
  • ------- 计算机网络基础
  • 深度解析利用ES6进行Promise封装总结
  • 以太坊客户端Geth命令参数详解
  • 运行时添加log4j2的appender
  • PostgreSQL之连接数修改
  • 仓管云——企业云erp功能有哪些?
  • ​一些不规范的GTID使用场景
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #Linux(make工具和makefile文件以及makefile语法)
  • #Linux(Source Insight安装及工程建立)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • $.ajax()参数及用法
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (LeetCode) T14. Longest Common Prefix
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (四)模仿学习-完成后台管理页面查询
  • (一)Thymeleaf用法——Thymeleaf简介
  • (一)基于IDEA的JAVA基础10
  • (一)为什么要选择C++
  • (已解决)什么是vue导航守卫
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)Oracle存储过程编写经验和优化措施
  • (转)setTimeout 和 setInterval 的区别
  • (转)socket Aio demo
  • (转载)(官方)UE4--图像编程----着色器开发
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 分布式技术比较
  • .NET面试题(二)
  • /bin/bash^M: bad interpreter: No such file or directory
  • ?
  • @cacheable 是否缓存成功_让我们来学习学习SpringCache分布式缓存,为什么用?
  • [AAuto]给百宝箱增加娱乐功能