这是个挺有意思且比较深入的冷门知识点,纯粹开发工作之外久藏于心的兴趣使然。不保证正确性哦,原创研究+ChatGPT3.5辅助,欢迎探讨。
1. 背景知识:
1.1 为了本文后续介绍方便,以下代码片段为典型的基于 WinINet 库实现的网络请求极简步骤。仅包含Windows客户端为了能发送和读取网络请求的5大必要步骤。(题目中提到的基于wininet/C++实现的通用实验性质的网络库后续调优后会发布 github 链接,敬请期待)
#include <windows.h>
#include <wininet.h>
int main() {
HINTERNET hInternet = InternetOpen(L"MyApp", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
HINTERNET hConnection = InternetConnect(hInternet, L"www.example.com", INTERNET_DEFAULT_HTTP_PORT,
NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
HINTERNET hRequest = HttpOpenRequest(hConnection, L"GET", L"/", NULL, NULL, NULL,
INTERNET_FLAG_RELOAD, 0);
if (!HttpSendRequest(hRequest, NULL, 0, NULL, 0)) {
}
char buffer[1024];
DWORD bytesRead;
wh