前言:1.url1.1概念解释
URL:Uniform Resource Locator(统一资源定位器)。
URL是互联网上用于标识特定资源的地址。它是一种标准的网络地址格式,用于指示网络资源的位置和访问方法。
因此,URL帮助我们定位我们所需资源的位置(在哪里),以及如何访问这些资源(如何做)。
例如:
1.2基本格式:scheme:表示协议类型。如:http,https。
host:表示服务器域名或IP地址。
port:表示端口号,http默认使用80端口,https默认使用443端口。现在大多数情况下不显示,访问时浏览器会自动补充。
path:表示资源的路径,指定要访问的服务器上的具体资源。注意:/不一定表示根目录,而是web的根目录。
query:查询字符串,向服务器传递参数。它是一对一对的key=value,多个key=value用&连接。
1.3URL-Decode,URL-Encode当我们查询一些特殊字符时,会对这些字符进行编码。
解码的方法是:根据ASCII码表,将其转换为16进制,然后加上百分号%。
1.4URL-encode工具:点击这里:
2.HTTP协议2.1https与http现在我们看到的大多数是https,而https是从http发展而来的,https更为安全。在这个信息时代,确保信息的安全性非常重要。
数据加密:通过SSL/TLS加密数据,确保数据在传输过程中不被窃取。身份验证:通过数字证书验证服务器的身份,确保客户端连接到的是正确的服务器。完整性保护:通过加密算法确保数据在传输过程中不被篡改。客户端发起HTTPS请求。服务器发送SSL/TLS证书。客户端验证证书的有效性。客户端和服务器协商加密算法和密钥。客户端和服务器通过加密通道进行数据传输。
2.2http的宏观格式:http有请求模式和响应模式,这两个的格式基本相似,但第一行有所不同。
请求行包含:
1.请求方法。2.URI。3.http版本。
请求方法包括GET、POST等。
响应行:
1.http版本。2.错误码。3.错误描述。

2.3http版本的直接区别:目前使用的http版本包括1.0、1.1和2.0。现在主要使用的是1.1或2.0。
HTTP/1.0:简单但性能低,适合早期的静态网页。 HTTP/1.1:解决了HTTP/1.0的许多性能问题,引入了持久连接和内容压缩等功能,是目前广泛使用的版本。 HTTP/2:在性能和功能上进行了重大改进,通过多路复用、头部压缩和服务器推送等技术,显著提高了传输效率和用户体验。 2.4实例代码:代码语言:javascript代码运行次数:0运行复制```javascript
pragma once#include #include #include #include #include #include #include "TcpServer.hpp"using namespace TcpServerModule;class HttpServer{ const std::string sep = "\r\n"; const std::string blank_line = "\r\n";public: HttpServer(int port) : _tsvr(std::make_unique(port)) { } void Start() { _tsvr->InitServer([this](SockPtr sockfd, InetAddr client) { return this->HandlerHttpRequest(sockfd, client); }); _tsvr->Loop(); } // 处理http的方法 bool HandlerHttpRequest(SockPtr sockfd, InetAddr client) { LOG(LogLevel::DEBUG) Fd() Recv(&s); std::cout Send(httpresponse); return true; } ~HttpServer() {}private: std::unique_ptr _tsvr;};
---3.telnet命令:主机名和IP地址:表示要连接的远程IP地址。
端口号表示要连接的端口号,如果不指定,默认是23(telnet服务的标准端口)。
- 测试网络服务
telnet命令可以用来测试各种网络服务是否正常运行。例如,测试HTTP服务是否正常:代码语言:javascript代码运行次数:0运行复制
javascript telnet example.com 80
连接成功后,可以手动输入HTTP请求:
代码语言:javascript代码运行次数:0运行复制javascript GET / HTTP/1.1Host: example.com
然后查看服务器的响应。- 远程登录虽然现代网络中更推荐使用ssh(更安全),但telnet仍然可以用于远程登录到某些旧系统:
代码语言:javascript代码运行次数:0运行复制javascript telnet example.com
- 调试网络问题telnet可以用来检查网络连接是否正常。例如,检查是否可以连接到某个端口:
代码语言:javascript代码运行次数:0运行复制javascript telnet example.com 25
如果连接失败,可能表示网络问题或目标端口未开放。










