• 【七】http服务器开发--客户端请求格式和服务器响应格式


    一、什么是http协议

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

    二、客户端的请求格式

    客户端收到的请求格式如下所示:

     GET / HTTP/1.1
    Host: 82.157.254.9:666
    Connection: keep-alive
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.5112.102 Safari/537.36 Edg/104.0.1293.63
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
    Cookie: wp-settings-time-1=1655560711
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
    在这里插入图片描述

    首先是请求行,请求行包括请求的方法、URL、协议版本等;
    在这里插入图片描述

    例如上面的示例中,请求的方法是GET,协议版本是HTTP/1.1。然后回车、换行;

    第二部分是请求头部:请求头部包含多个字段,比如connection字段、Cache-Control字段等,中间有个冒号,冒号后面是该字段具体的值。

    然后紧跟着一个空行,即只有回车符和换行符;用以对“请求头部”和“请求数据”进行分隔的;

    最后是请求数据

    三、服务端的响应格式

    客户端的响应示例如下所示:

    HTTP/1.0 200 OK
    Server: Martin Server
    Content-Type: text/html
    Connection: Close
    Content-Length: 526
    
    "zh-CN">
    
    "text/html; charset=utf-8" http-equiv="Content-Type">
    This is a test
    
    
    
    "500px" >


    大家好,这是响应的数据!



    "commit" method="post"> 尊姓大名: "text" name="name" />
    芳龄几何: "password" name="age" />


    "submit" value="提交" /> "reset" value="重置" />
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    服务器响应客户端的HTTP响应也由四个部分组成,分别是:状态行消息报头空行响应正文,如下图所示:

    在这里插入图片描述
    以上面的响应示例为例:
    在这里插入图片描述
    状态行:协议版本是HTTP/1.0,然后空格,然后响应代号是200,然后空格,最后代号描述是OK

    比较常用的代号描述有:
    在这里插入图片描述

  • 相关阅读:
    【牛客网-前端笔试题】——Javascript专项练习4
    Mysql 安装与卸载
    Java中ConcurrentHashMap 和 Hashtable
    Grafana系列-统一展示-8-ElasticSearch日志快速搜索仪表板
    GoWeb -- gin框架的入门和使用(2)
    mysql 高性能搭建3: 2022 mysql5.7.29(主主复制)+nginx的stream模块实现负载均衡
    GAN实战笔记——第五章训练与普遍挑战:为成功而GAN
    Redis实现分布式锁
    华为机试题目
    TiDB亿级数据亚秒响应查询Dashboard使用
  • 原文地址:https://blog.csdn.net/AnChenliang_1002/article/details/126514488