HTTP的初步了解

ops/2024/11/1 3:03:32/

目录

前言

一、HTTP协议的基本概念

1.1、请求格式

1.2、响应格式

二、HTTP链接问题


前言

提示:这里可以添加本文要记录的大概内容:

        HTTP协议是超文本传输协议

        HTTP的短连接:建立连接——数据传输——关闭连接

        HTTP的长连接:建立连接——数据传输——(保持连接)——数据传输——关闭连接。如果长时间没有新的请求,连接才会关闭


提示:以下是本篇文章正文内容,下面案例可供参考

一、HTTP协议的基本概念

概念:HTTP协议是一个规范,规则。通过这个规则实现客户端与服务器之间的各种信息的传

           输,它是响应协议(客户端向服务器发送一次请求,服务器返回对应的响应,得到响

           应后接收通信)

 协议格式:HTTP分为请求格式和响应格式两种

        请求格式:客户端发送给服务端,用于请求服务器上的资源。由以下几个部分组成。

                请求行:用于明确向服务器表达,自己请求的资源/功能

                请求头部:对请求或正文的细致描写

                空行:用于间隔头部与正文

                正文:客户端向服务器发送的数据内容

        响应格式:服务端发送给客户端,用于回应客户端的请求

                响应行:直观向客户端描述本次请求的处理结果

                响应头部:对本次响应以及正文进行额外的描述

                空行:用于间隔头部与正文

                正文:返回给客户端的具体数据

1.1、请求格式

请求行:用于向服务器表达、自己请求的资源

        组成:包含三个元素(请求方法)、元素之间以空格间隔、以 \r\n 结尾

        请求方法:用于明确当前的请求是一个怎么样的请求

                GET:用于向服务器请求实体资源,请求没有正文但是可用提交数据、提交的数据

                           在URL中,而不是正文中,但提交的数据有限且不安全。

                HEAD:与GET功能类似,但是区别在于响应中不用返回实体资源、只有头部字段

                POST:用于向服务器提交数据,提交的数据在正文中。

请求头部:对请求和正文的细致描述

        格式:key: val\r\nkey: val\r\n......

        User-Agent: 描述客户端版本信息。服务端可以定制化响应

                             Mozilla/5.0 (Windows NT 10.0; Win64; x64)  
        Content-Type:描述正文类型,决定了正文将会被如何处理

                               application/x-www-form-urlencoded  
        Content-Length:描述正文长度

                                   40  
        Referer: 告诉服务器本次请求的来源链接

                      https://www.baidu.com/form-page  

请求空行:\r\n 间隔请求头部与正文

正文:提交给服务器的数据

URL:网址——资源定位符

        作用:描述如何在某个地方获取某个指定的资源

         要素:http//user:pass@www.baidu.com:80/s?wd=C%2B%2b&e=utf8#ch 

https://www.baidu.com:80/path/to/resourceparam1=value1&param2=value2#section1 

                http:协议名称,表示本次通信使用的是什么协议

                user:访问服务器的用户认证信息的用户名

                pass:访问服务器的用户认证信息的密码

                baidu.com:域名,经过解析可以得到服务器的IP地址

                80http协议的默认端口是80端口,https是443端口

                /s或/path/to/resource:请求资源的路径

                wd=C%2B%2b&e=utf8或param1=value1&param2=value2: 查询字符串

                ch或section1:片段标识符,通常是一个html标签的id值

协议版本:现在通常是1.1的版本

        从1.0版本进程的改进,从短链接支持了长链接

1.2、响应格式

 响应行:

        格式:HTTP协议版本、状态码、状态消息 \r\n

        1xx:信息状态码,对应请求的描述; 101--协议切换

        2xx:成功状态码;        200--成功处理

        3xx:重定向状态码;     302-临时重定向    301-永久重定向     303-请求其他路径

        4xx:客户端错误状态码;        404-请求资源不存在

        5xx:服务器错误状态码;        502-服务器请求失败        504-服务器请求超时

响应头部:对本次响应以及正文进行额外的描述

        格式:key: val\r\nkey: val\r\n......

                Location:当状态码为3XX时,此字段指定了客户端应进一步访问的URL。

        正文:响应(返回)给客户端的数据

二、HTTP链接问题

         由于HTTP的一个简单的请求,并且是短链接,每次请求服务器都不一定使用同一个链接,如果每次请求服务器都是新连接,那么如何识别客户端身份就是一个问题,为了解决这个问题提出了cookie机制

        

cookie:

        在http协议头部中加入了两个字段:Cookie Set-Cookie

        1、客户端登陆成功后、服务器通过Set-Cookie字段向客户端返回一些数据:客户端身

              份及状态

        2、客户端收到响应后、将Set-Cookie字段中的数据保存起来到cookie文件中

        3、当客户端下次请求服务器是,就会从cookie文件中读取出cookie数据,通过Cookie

              字段发送给服务器

session:

        cookie是有安全隐患的它默认是明文存储,因此推出了session

        会话控制—每个客户端在访问服务器后,服务器都会为其创建一个会话,这个会话是存

                          储在服务端上的包含了用户的会话信息,如用户身份,会话状态,偏好设置

                          等。当服务端响应的时候,会将session的id作为cookie数据通过Set-Cookie

                          字段发送给客户端,下次客户端请求服务器的时候,就会将session的id通过

                          Cookie发送给服务器


http://www.ppmy.cn/ops/130012.html

相关文章

Go语言八股(Ⅲ)

什么是rune类型? rune类型是Go语言的一种特殊数字类型,在builtin/builtin.go文件中,它的定义为:type rune int32;官方对它的解释是:rune是类型int32的别名,在所有方面都等价于它,用…

vite乾坤 vite-plugin-qiankun 报错 ReferenceError: ReadableStream is not defined

今天新接入一个子应用,发现其他子项目都可以运行,改造代码都差不多。我新的项目却报错 ReferenceError: ReadableStream is not defined断点发现是有个库版本不对,上github搜到了问题。 https://github.com/tengmaoqing/vite-plugin-qiankun…

创建一个基于Java的图书馆管理系统

创建一个基于Java的图书馆管理系统是一个涉及多个步骤的过程。包括项目结构、数据库设计、配置文件、DAO层、Service层、Controller层和前端页面的示例。 1. 需求分析 明确系统的主要功能需求,例如: 用户注册与登录图书信息管理(增删改查&…

Ajax:请求 响应

Ajax:请求 & 响应 AjaxjQuery的Ajax接口$.get$.post$.ajax PostMan 接口测试getpost Ajax 浏览器中看到的数据,并不是保存在浏览器本地的,而是实时向服务器进行请求的。当服务器接收到请求,就会发回一个响应,此时浏…

Paimon x StarRocks 助力喜马拉雅构建实时湖仓

作者:王琛 喜马拉雅数仓专家 小编导读: 本文将介绍喜马拉雅直播的业务现状及数据仓库架构的迭代升级,重点分享基于 Flink Paimon StarRocks 实现实时湖仓的架构及其成效。我们通过分钟级别的收入监控、实时榜单生成、流量监测和盈亏预警&am…

nginx 路径匹配,关于“/“对规则的影响

1、基本规则 假如后端实际地址为: http://127.0.0.1:8080/api/user/getById?id123 则: 1)通过nginx转发,使用http://127.0.0.1/api/user/getById?id123访问 server {listen 80;server_name 127.0.0.1;location /api…

深度学习:Overfitting 成因及解决策略

Overfitting 成因及解决策略 过拟合(Overfitting)是指一个统计模型或机器学习算法捕捉到数据中的随机误差或无意义的细节而非底层的数据分布规律,因此在训练集上显示出极好的表现,但在新的、未见过的数据上表现较差。这一现象常常…

C2.【C++ Cont】初认识cout,cin和endl

目录 1.回顾 2.分析cout和endl cout和cin 代码示例 总结 "自动识别"的含义 endl 总结 1.回顾 在C1.【C Cont】准备中提到了打印Hello World!的语句 cout<<"Hello World!"<<endl; 2.分析cout和endl cout和cin 在cplusplus网上是这么…