目录
什么是HTTP协议
什么是 URL ?
理解 URL
初识HTTP 请求与响应格式
代码验证
gitee
HTTP.hpp
结果
什么是HTTP协议
HTTP(HyperText Transfer Protocol,超文本传输协议)主要用于客户端(通常是浏览器)与服务器之间信息的交换。
它定义了客户端(如浏览器) 与服务器之间如何通信, 以交换或传输超文本(如 HTML 文档)。HTTP 协议是客户端与服务器之间通信的基础。 客户端通过 HTTP 协议向服务器发送请求, 服务器收到请求后处理并返回响应。
HTTP 协议是一个无连接、 无状态的协议:
- 无连接:每次请求都需要建立新的连接;
- 无状态:服务器不会保存客户端的状态信息,服务器不会保留之前请求的状态。
什么是 URL ?
URL(Uniform Resource Locator,统一资源定位器)是互联网上标准的资源地址。它用于指定网络上的信息位置以及访问这些信息的方法。简单来说,URL 就是我们平时说的网址。
一个URL通常由以下几个部分组成:
https://mail.google.com:443/mail/u/0/?tab=wm#inbox
https
是协议。mail
是子域名。google.com
是主域名。:443
是端口号,这里使用的是HTTPS的默认端口,所以通常是省略的。/mail/u/0/
是带层次的文件路径。?tab=wm
是查询字符串。#inbox
是片段标识符。
理解 URL
网络通信,本质上是两个进程之间的通信,在 HTTP 协议中,客户端通过 HTTP 协议向服务器发送请求, 可以看作客户端在向服务器请求某种资源,这种资源可以是图片、文字、音视频,在客户端向服务器发出请求之前,这些资源已经存储在服务器了,在 Linux 下一切皆文件,这些资源本质上也是文件,服务器需要找到文件,并把对应的资源发给客户端。
那么服务器如何找到对应的文件呢?只要是文件,就会自己的文件路径,只要有了文件路径,就可以找到文件。此外,我们需要注意到,可能会有很多台服务器在向客户端提供服务,所以除了知道文件路径外,还需要知道服务器的 IP + 端口号,才可以确定文件所在的服务器。综上,IP + 端口号 + 文件路径 就可以确定互联网中唯一的文件(资源)了。
URL 中的端口号通常是可选的,并且在某些情况下会被省略。具体来说:
默认端口:对于一些熟知的服务,如 HTTP 和 HTTPS,存在默认的端口号。当使用这些默认端口时,端口号可以从URL中省略。
- HTTP 的默认端口是
80
。 - HTTPS 的默认端口是
443
。
因此,如果访问的是一个通过 HTTP 运行在 80 端口上的网站或通过 HTTPS 运行在 443 端口上的安全网站,你不需要在 URL 中明确指定端口号。
初识HTTP 请求与响应格式
HTTP REQUEST:
HTTP RESPONSE:
代码验证
gitee
http · zihuixie/Linux_Learning - 码云 - 开源中国https://gitee.com/zihuixie/linux_-learning/tree/master/http
HTTP.hpp
#pragma once
#include<iostream>
#include<string>
#include<vector>
class HTTPServer
{
public:
HTTPServer()
{
}
~HTTPServer()
{
}
std::string HandlerHttpRequest(std::string req)
{
std::cout<<"----------------------------------------------"<<std::endl;
std::cout<<req;
std::string reponse="HTTP/1.0 200 OK\r\n";
reponse+="\r\n";
reponse+="<html><body><h1>hello world<h1><body><html>";
return reponse;
}
private:
};
结果
页面访问成功:
收到报文: