我有一个问题,Chrome在建立连接之前正在DNS查找之后等待一些东西。 我的问题->(https://imgur.com/qA5ADOa) 在图片上您可以看到,在dns查找之后存在很大的差距,尽管所有值加起来最大为16ms,但请求花费了313ms。 此图片上的Apache->(https://imgur.com/UI4ToDu)。 apache不会发生什么问题?在这张照片上,您可以很好地看到apache不会发生问题。
我正在用C ++编写一个简单的Web服务器,只是为了练习。我使用Chrome浏览器测试了网络服务器。代码非常简单,没有错误处理,这是套接字创建后具有硬编码响应的部分:
std::memset(&myAddr, 0, sizeof(myAddr));
myAddr.sin_family = AF_INET;
myAddr.sin_addr.s_addr = INADDR_ANY;
myAddr.sin_port = htons(80);
bind(acceptSock, (sockaddr *)&myAddr, sizeof(myAddr));
listen(acceptSock, 5);
clientSock = accept(acceptSock, (sockaddr *)&clientAddr, &clientAddrLen);
std::vector<char> recvbuf(BUFFER_LENTH);
recv(clientSock, &recvbuf[0], recvbuf.size(), 0);
std::ifstream file("index.html");
if (file.is_open()) {
std::string content;
std::string buf;
while (std::getline(file, buf)) {
content += buf;
buf.clear();
}
file.close();
size_t contentLength = content.size();
std::string sendbuf = "HTTP/1.1 200 OK\r\n";
sendbuf += "Content-Type: text/html; charset=UTF-8\r\n";
sendbuf += "Content-Length: " + std::to_string(contentLength) + "\r\n";
sendbuf += "Server: meinWebServer\r\n";
sendbuf += "\r\n";
sendbuf += content;
send(clientSock, sendbuf.c_str(), sendbuf.size(), 0);
}