Linux -- 初识HTTP协议

目录

什么是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 - 码云 - 开源中国icon-default.png?t=O83Ahttps://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:

};

结果

页面访问成功:

 收到报文:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值