一、HTTP协议01

news2025/7/16 19:13:04

文章目录

  • 一、用户在浏览器中输入网址背后发生的事
  • 二、什么是HTTP
  • 三、HTTP和TCP/IP的关系
  • 四、HTTP的特点
    • 4.1、客户/服务模式
    • 4.2、简单快速
    • 4.3、灵活
    • 4.4、无连接
    • 4.5、无状态
  • 五、HTTP报文结构分析-请求报文
  • 六、HTTP报文结构分析-响应报文
  • 七、HTTP请求方法
  • 八、状态码


一、用户在浏览器中输入网址背后发生的事

在这里插入图片描述

二、什么是HTTP

超文本传输协议HTTP是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。
HTTP是一个属于应用层的面向对象的协议。

三、HTTP和TCP/IP的关系

HTTP协议是构建在TCP/IP协议这上的,是TCP/IP协议的一个子集。

TCP/IP协议族分层
TCP/IP协议族是由一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层和数据链路层。
在这里插入图片描述
应用层
应用层一般是我们编写的应用程序,决定了向用户提供的应用服务。应用层可以通过系统调用与传输层进行通信。如:FTP、DNS、HTTP等。
传输层
传输层通过系统调用向应用层提供处理网络连接中的两台计算机之间的数据传输功能
在传输层有两个性质不同的协议TCP和UDP。
网络层
网络层用来处理在网络上流动的数据包,数据包是网络传输的最小数据单位。该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传输给对方。
链路层
链路层用来处理连接网络的硬件部分,包括控制操作系统、硬件设备驱动、NIC(Network Interface Card,网络适配器)以及光纤等物理可见部分。硬件上的范畴均在链路层的作用范围之内。
上层数据是怎么转变为下层数据的?
通过层层的数据包封装
在这里插入图片描述
HTTP数据传输过程
发送端发送数据时,数据会从上层传输到下层,且每经过一层都会被打上该层的头部信息。而接收端接收数据时,数据会从下层传输到上层,传输前会把下层的头部信息删除
TCP/IP协议数据流示意图
在这里插入图片描述
传输层TCP三次握手
最终的目的是确认客户端和服务器端的接收和发送能力都是正常的就建立了一个TCP连接。
在这里插入图片描述
第一次握手:客户端发送带有SYN标志的连接请求报文段,然后进入SYN_SEND状态,等待服务端的确认。
第二次握手:服务端接收到客户端的SYN报文段后,需要发送ACK信息对这个SYN报文段进行确认。同时,还要发送自己的SYN请求信息。服务端会将上述的信息放到一个报文段(SYN+ACK报文段)中,一并发送给客户端,此时服务端将会进入SYN_RECV状态。
第三次握手:客户端接收到服务端的SYN+ACK报文段后,会向服务端发送ACK确认报文段,这个报文段发送完毕后,客户端和服务端都进入ESTABLISHED状态,完成TCP三次握手。

四、HTTP的特点

4.1、客户/服务模式

客户/服务器模式工作方式是由客户向服务器发出请求,服务器端响应请求,并进行相应服务。
1、客户连接到服务器
2、客户端向服务器发送请求
3、服务器向客户端发送响应
4、关闭连接

4.2、简单快速

  • 客户向服务器请求服务时,只需传送请求方法和路径。
  • 请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同
  • 由于HTTP协议简单,使用HTTP服务器的程序规模小,因而通信速度很快

4.3、灵活

  • HTTP允许传输任意类型的数据对象
  • 正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记

4.4、无连接

  • 无连接的含义是限制每次连接只处理一个请求
  • 服务器处理完客户的请求,并收到客户的应答后,即断开连接
  • 采用这种方式可以节省传输时间

大量图片需要重新建立连接,浪费时间,keep live

4.5、无状态

  • HTTP协议是无状态协议
  • 无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
  • 另一方面,在服务器不需要先前信息时它的应答就快。

可能需要记忆一些先前用户的操作信息如购物车,这时就用到了Session,Cookie

五、HTTP报文结构分析-请求报文

在这里插入图片描述
HTTP报文头
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ACCEPT
在这里插入图片描述

Accept-Encoding
在这里插入图片描述
Accept-Language
在这里插入图片描述
Connection

在这里插入图片描述
Referer
在这里插入图片描述
User-Agnet
在这里插入图片描述
Content-Type
在这里插入图片描述
在这里插入图片描述

六、HTTP报文结构分析-响应报文

在这里插入图片描述

七、HTTP请求方法

在这里插入图片描述
GET
在这里插入图片描述
POST
在这里插入图片描述
PUT
在这里插入图片描述
HEAD
在这里插入图片描述
DELETE
在这里插入图片描述
OPTIONS
在这里插入图片描述

八、状态码

在这里插入图片描述
HTTP状态码详解
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/369248.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Spark分布式内存计算框架——离线综合实战】7.应用执行调度

第四章 应用执行调度 前面已经完成【广告数据ETL】和【业务报表分析】,在IDEA中使用本地模式LocalMode开发,从本地文件系统LocalFS加载数据,接下来打包发到测试集群环境测试,并且使用Oozie调度执行。 4.1 应用打包 在集群环境…

CS224W课程学习笔记(四):node2vec算法原理与说明

引言 什么是图嵌入? 我想从上节的deepwalk中已经有一个十分完整的轮廓了,这里引出deepwalk论文中的一张很形象的图(当然,上节的一些实战演练,也将这种嵌入关系进行了模拟与可视化,前文为:&…

项目管理工具dhtmlxGantt甘特图入门教程(十三):导出PDF和PNG格式

这篇文章给大家讲解dhtmlxGantt如何导出PDF和PNG格式。 dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表,可满足应用程序的所有需求,是完善的甘特图图表库 DhtmlxGantt正版试用下载(qun 764148812)https://www…

浅谈人工智能(`AI`)基础知识

人工智能(AI)-基础知识 1. 什么是人工智能 1.1 人工智能基础定义 人工智能(英语:artificial intelligence,缩写为AI)亦称智械、机器智能,指由人制造出来的机器所表现出来的智能。通常人工智能是指通过普通计算机程序…

【系统分析师之路】2022上案例分析历年真题

【系统分析师之路】2022上案例分析历年真题 【系统分析师之路】2022上案例分析历年真题【系统分析师之路】2022上案例分析历年真题2022上案例分析历年真题第一题(25分)2022上案例分析历年真题第二题(25分)2022上案例分析历年真题第…

3.4 Spring Boot 日志配置

第3章 Spring Boot 的系统配置 3.1 Spring Boot 系统配置文件 3.2 Spring Boot 自定义配置项 3.3 Spring Boot 其他配置 3.4 Spring Boot 日志配置 3.5 实战:Spring Boot 实现系统多环境配置 3.4 Spring Boot 日志配置 日志对于系统监控、故障定位非常重要&#xf…

Qt——Javascript/Qt交互、脚本化

Qt提供了对Javascript的良好支持, 如果查阅过文档你就知道Qt有两个不同的Js封装引擎: QScriptEngine QJSEngine QScriptEngine出现的比较早(自Qt4.3始),基于WebKit的JavaScriptCore引擎,提供的api相对来说比较丰富&a…

(一维、二维)数组传参,(一级、二级)指针传参【含样例分析,新手易懂】

目录数组传参一维数组传参二维数组传参指针传参一级指针传参二级指针传参我们在写代码的时候难免要把数组或者指针传给函数&#xff0c;那函数的参数该如何设计呢&#xff1f; 数组传参 一维数组传参 我们首先来看下面代码的几个例子&#xff1a; #include <stdio.h>…

优化长尾关键词有什么好处?在线长尾关键词挖掘

​想知道为什么要使用长尾关键词&#xff1f; 好吧&#xff0c;它们可以帮助你轻松找到合适的受众。 ​ 1.获得更高的转化率 长尾关键词对于搜索特定信息更有用。使用长尾关键词时通常会获得更高的转化率&#xff0c;因为内容与受众的需求更相关。 举个例子&#xff1a;你正…

3年测试拿8K,被校招来的实习生反超薪资,其实你在假装努力

最近朋友给我分享了一个他公司发生的事 大概的内容呢&#xff1a;公司一位工作3年的测试工资还没有新人高&#xff0c;对此怨气不小&#xff0c;她来公司辛辛苦苦三年&#xff0c;三年内迟到次数都不超过5次&#xff0c;每天都是按时上下班&#xff0c;工作也按量完成&#xf…

【华为OD机试模拟题】用 C++ 实现 - 最低位排序(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 货币单位换算(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 选座位(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 停车场最大距离(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 重组字符串(2023.Q1) 【华为OD机试模…

结构效度分析流程

结构效度分析流程如下图 一、结构效度的意义 效度分析在学术研究中非常常见&#xff0c;结构效度是为了分析“从量表获得的结果与设计该量表时所假定的理论之间的符合程度”。简单来讲&#xff0c;在研究者设计量表之初&#xff0c;一般会预设好几个维度&#xff0c;在经过因子…

docker搭建MySQL集群(1主1从)

1.创建挂载路径及配置文件my.cnf&#xff0c;挂载mysql的数据、配置、日志 /usr/mydata/mysql/conf/s1 /usr/mydata/mysql/conf/m1my.cnf先只写server-id,保证主从不同 2.拉取MySQL镜像&#xff0c;启动两个实例 docker run -p 3316:3306 --name mysql-m1 -v /usr/mydata/m…

识别密文加密类型

离线密码破解&#xff1a;离线不会触发密码锁定机制不会产生大量登录失败日志引起管理员注意HASH识别工具&#xff08;识别哈希类型&#xff09;&#xff1a;hash-identifierHashid yara规则匹配文件得到特定加密算法一、hash-identifierKali Linux提供工具hash-identifier来识…

LabVIEW如何调用.m脚本LabVIEW调用MATLAB

LabVIEW如何调用.m脚本LabVIEW调用MATLAB有一个用MATLAB编写的脚本&#xff0c;想知道从LabVIEW调用它的方法&#xff0c;以及哪一个是最快的。解决方法有几种方法可以在LabVIEW中调用.m脚本。LabVIEW中的MATLABScript Node使用ActiveX调用MATLAB运行时系统。注意&#xff1a;不…

Nginx 02篇——Nginx基本配置与参数说明篇

Nginx 02篇——Nginx基本配置与参数说明篇前言-默认配置文件1. 前言——关于nginx1.1 关于nginx1. 2 Nginx 01篇——Nginx安装2. Nginx 配置文件结构2.1 Nginx 安装后的默认文件2.2 Nginx 的三大组成部分3. 配置参说明-1——整个配置3.1 配置说明3.2 参考4. 配置说明-2—详细说…

增量更新jar包的方法

由于现在绝大多数服务都采用spring boot,且在打包时一般选择全量包的形式,因此在服务依赖比较多的情况下,更新/添加其中的一个文件时,会造成很大的麻烦,比如一个服务打完包后,jar文件的体积可能在200M左右,因此在网络条件不好的情况下&#xff0c;频繁更新服务包还是比较麻烦的…

http/HTTPS相关的一些知识

2、http和https HTTP&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则。HTTP 是应用层协议&#xff0c;它以 TCP&#xff08;传输层&#xff09;作为底层协议&#xff0c;默认端口为 80。 http的通信过程&#xff1a;服务器在80端口等待客户的请…

联想Thinkpad X1 Carbon (7th Gen)电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。硬件型号驱动情况主板Thinkpad X1 Carbon处理器Intel Core i5-10210U (formerly Comet Lake)已驱动内存8GB DDR3 (or something like that)已驱动硬盘WDC PC SN730 SDBQNTY-256G-1001已驱动显卡Intel UHD 620Nvidia GeForce…

【AcWing-Python-785】快速排序

题目&#xff1a;https://www.acwing.com/problem/content/description/787/对应视频讲解&#xff1a;https://www.acwing.com/video/227/题目描述注意本题数据已加强。快速排序过程中&#xff0c;如果每次取区间起点或者终点作为分界点&#xff0c;则会超时。分界点换成随机值…