计网学习笔记(3)-Http协议总结

从零开始的计网学习——应用层(万维网、HTTP、SMTP协议) 本文是计算机网络中最顶层——应用层的知识讲解,主要是万维网的相关知识和HTTP、SMTP等协议的讲解。 阅读详情

今日心情美丽,复习下Http协议相关内容.

HTTP(超文本传输协议,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。是用于从WWW服务器传输超文本到本地浏览器的传输协议,默认使用80端口

1.1 组成

  • Http请求
    Http请求由以下三部分构成,即:

    1.请求行
    2.请求头
    (空行)
    3.请求数据

    在这里插入图片描述
  • Http响应
    Http响应由以下三部分构成,即:

    1.状态行(响应行)
    2.消息报头
    (空行)
    3.响应正文

    在这里插入图片描述

1.2 常见状态码

200:请求被正常处理

204:请求被受理但没有资源可以返回

206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。

301:永久性重定向

302:临时重定向

303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上

304:该请求获取的响应和上次请求获取的响应一样(Not Modified)

307:临时重定向,与302类似,只是强制要求使用POST方法

400:请求报文语法有误,服务器无法识别

401:请求需要认证

403:请求的对应资源禁止被访问

404:服务器无法找到对应资源

500:服务器内部错误

503:服务器正忙

1.3 常见请求方式

GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器

POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。

PUT: 传输文件,报文主体中包含文件内容,保存到对应URI位置。

HEAD: 获得报文首部,与GET方法类似,只是不返回报文主体,一般用于验证URI是否有效。

DELETE:删除文件,与PUT方法相反,删除对应URI位置的文件。

OPTIONS:查询相应URI支持的HTTP方法。

TIP:Get请求和Post请求的区别?
区别一:
get重点在从服务器上获取资源,post重点在向服务器发送数据;
区别二:
get传输数据是通过URL请求,以field(字段)= value的形式,置于URL后,并用"?“连接,多个请求数据间用”&"连接,如http://127.0.0.1/Test/login.action?name=admin&password=admin,这个过程用户是可见的;
post传输数据通过Http的post机制,将字段与对应值封存在请求实体中发送给服务器,这个过程对用户是不可见的;
区别三:
Get传输的数据量小,因为受URL长度限制,但效率较高;
Post可以传输大量数据,所以上传文件时只能用Post方式;
区别四:
get是不安全的,因为URL是可见的,可能会泄露私密信息,如密码等;
post较get安全性较高;
区别五:
get方式只能支持ASCII字符,向服务器传的中文字符可能会乱码。
post支持标准字符集,可以正确传递中文字符。

1.3 请求过程

1.客户端打开与服务器端的TCP连接
2.客户端发送请求行
3.客户端发送请求头(若是Post请求,则接着发送请求体)
4.服务器端响应状态码
5.服务器端响应状态行和状态头
6.服务器端响应实际所需数据
7.关闭TCP连接(若为Http1.1的KeepAlive,则不关闭连接)
在这里插入图片描述

1.4 版本区别

Http 1.0使用的是每次请求都开启TCP连接,在请求结束后立即关闭TCP连接,连接无法复用;而Http 1.1使用的是长连接形式,在一个TCP连接上可以保持多个Http请求和响应,达到了连接的复用性,如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close;Http 2.0相比Http 1.0出现了多路复用,二进制分帧,首部压缩,服务端推送;

1.5 常见Header

Date:创建报文时间

Connection:连接的管理

Cache-Control:缓存的控制

Transfer-Encoding:报文主体的传输编码方式

Host:请求资源所在服务器

Accept:可处理的媒体类型

Accept-Charset:可接收的字符集

Accept-Encoding:可接受的内容编码

Accept-Language:可接受的自然语言

Accept-Ranges:可接受的字节范围

Location:令客户端重新定向到的URI

Server:HTTP服务器的安装信息

Allow:资源可支持的HTTP方法

Content-Type:实体主类的类型

Content-Encoding:实体主体适用的编码方式

Content-Language:实体主体的自然语言

Content-Length:实体主体的的字节数

Content-Range:实体主体的位置范围,一般用于发出部分请求时使用

1.6 Htttps原理

Https是Http协议+SSL或TLS的简称,并不是一个新的协议;由于Http本身是明文交换数据的,并且没有做安全限制,所以SSL或TLS的作用就是对请求和响应做做了一系列安全处理

  • Http + SSL 请求流程图
    在这里插入图片描述

  • Http + SSL 请求校验过程

  1. 客户端发起HTTPS请求,连接到server的443端口

  2. 服务端证书配置
    证书指的是一对公钥和私钥。公钥指的是服务器颁发给其他客户端的证书,而私钥只有服务器才有;当服务器校验客户端的公钥和自身的私钥不匹配,则说明这是一个不安全的请求;其实公钥就是一把把锁,而私钥就是唯一的一把钥匙,当锁能和钥匙匹配,则说明这个锁是正确的锁,这样思考可以很快地理解公钥和私钥的作用

  3. 传送证书
    这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等

  4. 客户端解析证书
    这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随即值。然后用证书对该随机值进行加密。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容

  5. 传送加密信息
    这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了

  6. 服务段解密信息
    服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

  7. 传输加密后的信息
    这部分信息是服务段用私钥加密后的信息,可以在客户端被还原

  8. 客户端解密信息
    客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容

今天就总结到这吧,之后有什么内容需要整理总结的再继续~下班下班(゜-゜)つロ (干杯)

计网—HTTP协议详解 HTTP协议 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。 协议报文解析 HTTP报文大致可分为报文首部和报文主体两部分,两者由一个空行划分。通常,不一定要有报文主体(GET方法就... 阅读详情

相关推荐

(计网实验3) 利用 Wireshark 进行协议分析

目录1.实验目的2.实验内容3.实验过程Wireshark 的使用分析HTTP协议HTTP GET/response 交互HTTP 条件 GET/response 交互TCP 分析浏览追踪信息TCP 基础 1.实验目的 熟悉并掌握 Wireshark 的基本操作,了解网络协议实体间进行交互以及报文交换的情况。 2.实验内容 学习 Wireshark 的使用 利用 Wireshark 分析 HTT...

4825

自己动手写搜索引擎(常搜吧历程三#搜索#)(Java、Lucene、hadoop)

Lucene的常用检索类 1、IndexSercher:检索操作的核心组件,用于对IndexWriter创建的索引执行,只读的检索操作,工作模式为接受Query对象而返回ScoreDoc对象。 2、Term:检索的基本单元,标示检索的字段名称和检索对象的值,如Term("title", "lucene")。即表示在title字段中搜索关键词lucene。 3、Query:表示查询的抽象类,由

shaopeng5211的专栏 1万+

PCB光绘文件DFM检查:从Gerber验证到制造闭环

Gerber文件是PCB设计交付制造的核心数据载体,其准确性直接决定硬件可制造性与量产良率。理解Gerber格式规范、IPC网表比对原理及DFM(Design for Manufacturability)自动检测逻辑,是电子工程师保障设计落地的关键能力。通过电气连通性验证、物理DRC规则扫描与工艺兼容性分析,DFM工具能提前识别开路、短路、孔环不足、阻焊异常等典型问题,避免投板后返工甚至批量报废。在国产化替代趋势下,华秋DFM等平台已深度适配Altium Designer工作流,支持一键导入、智能报告与协同

weixin_42620563的博客 508

《网络基础》题库

《网络基础》 一、判断题(共40题,200分) 1、一台电脑只能装有一块网卡 ( ) 正确答案: 错误 2、每个网卡都有唯一的编号,我们称之为MAC地址 ( ) 正确答案: 正确 3、网络协议就是为数据交换而制定的规则、约定和标准 ( ) 正确答案: 正确 4、在计算机网络中,不同节点的相同层次的功能是不一样的。 (...

qq_44869895的博客 1万+

WinCC与PLC在西门子逻辑赛项中的通信配置避坑指南

本文针对西门子逻辑赛项中WinCC与PLC通信配置的常见问题,提供了一套实战避坑指南。重点解析了WinCC、PLC与EET仿真平台的三角通信架构,强调了IP地址规划、防火墙设置等关键环节的注意事项,并给出了系统化的故障诊断流程与排查技巧,帮助选手和技术人员快速定位并解决通信故障,确保监控系统稳定运行。

weixin_29165725的博客 108

EndNote20保姆级安装教程:从下载到汉化一步到位(附闪退解决方案)

本文提供EndNote20的详细安装与汉化教程,涵盖系统准备、分步安装、路径优化及闪退解决方案。针对科研人员的需求,特别优化了中文环境下的使用体验,确保文献管理工具的高效稳定运行。

weixin_30415113的博客 343

手动配置泛域名https (资源)

使用 certbot 在CentOS7下配置nginx支持泛域名https, 例如我们申请zqyu.com这个域名的泛域名证书 一、 安装certbot $ sudo yum install python2-certbot-nginx 二、 生成证书 $ certbot certonly --manual -d zqyu.com -d *.zqyu.com --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.or

qq_40907977的博客 2082

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

高效批量转换Java接口为MCP服务:降低重复劳动的实战指南

专注于编程、AI、人工智能等多个领域内容研究和分析 726

base64

base64 base64 编码 Base64是一种用64个字符来表示任意二进制数据的方法。 用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。 把文字转base64信息 图片(jpg编码)→二进制(...

sunshine 1万+

SAP_MM&FI模块-质保金标准解决方案详解

主要讲述了SAP系统质保金的标准实现方案,包含业务背景、后台配置、前台业务操作记录,以及关键点的AI解释;

风沙的博客 687

基于BEV(鸟瞰图)的3D检测:PointPillars与CenterPoint

基于BEV(鸟瞰图)的3D检测:PointPillars与CenterPoint​ ,人工智能,计算机视觉,大模型,AI,本文围绕基于BEV的3D检测,解析了PointPillars与CenterPoint两种算法。PointPillars用点柱特征编码网络处理点云,通过2D卷积网络提取特征,检测头为解耦头;CenterPoint将三维物体表为点,分两阶段检测,先找中心点及属性,再细化预测。两者都可借特定骨干网生成BEV特征图且基于BEV检测,但检测头设计和物体表示方式不同。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 27万+

web基础

web基础,css基础,js基础

dianziagen的博客 5万+

华为OD机试真题2025双机位A卷 C语言 实现【采购订单】

在一个采购系统中,采购申请(PR)需要经过审批后才能生成采购订单(PO)。每个PR包含商品的单价(假设相同商品的单价一定是一样的)及数量信息。系统要求对商品进行分类处理:单价高于100元的商品需要单独处理,单价低于或等于100元的相同商品可以合并到同一采购订单PO中。针对单价低于100的小额订单,如果量大可以打折购买。

MISAYAONE的博客 353

wireshark分析http协议 计网实验总结

利用wireshark分析http报文 上周实验中进行了课程实验用wireshark抓包了http报文,收获许多,准备开启我的第一篇博客文章。 http的基本知识 HTTP(HyperText Transfer Protocol,超文本传输协议)是Web系统最核心的内容,是Web服务器和客户端直接进行数据传输的规则。HTTP协议是用于从WWW服务器传输超文本到本地浏览器的传送协议。可以使浏览器更加高效,使网络传输减少。不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及首先显示(如文本先

weixin_47217021的博客 1万+

计算机组成原理(第三版)唐朔飞-第七章指令系统-课后习题

机器字长是指CPU一次能处理数据的位数通常与CPU的寄存器位数有关。指令字长是指机器指令中二进制代码的总位数。存储字长是指存储单元中存放二进制代码的总位数。三者可以相等也可以不等视不同机器而定。答:OP(4位)A1(6位)A_1(6位)A1​(6位)A2(6位)A_2(6位)A2​(6位)设二地址指令格式为该指令系统的基本格式,4位操作码共有16种编码,其中13种用来定义二地址指令,还剩3种可用作扩展标志。一地址指令条数=3∗26=192。

weixin_45735391的博客 7万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计网协议总结

文章目录网络层IP地址和硬件地址ARP协议(地址解析协议)IP数据报ICMP报文ICMP差错报文ICMP询问报文ICMP的应用-PING路由选择协议内部网关协议RIP协议OSPF协议外部网关协议运输层进程间通信等概念用户数据报协议UDP特点首部格式传输控制协议TCP特点连接停止等待协议首部格式TCP可靠传输的实现滑动窗口流量控制拥塞控制连接管理 这篇文章主要是为了面试整理的,不建议系统学习时看 网络层 IP地址和硬件地址 物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种

吃橘子 6574

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

计网之HTTP协议和Fiddler的使用

介绍应用层广泛使用的HTTP协议, 重点介绍HTTP的报文格式, 报文中常见的关键字段, 对Cookie的理解, 状态码, 还有Fiddle抓包工具的使用.

trong_ 的烂笔头 3207

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

【计网】HTTP协议详解

应用层协议Http。

欢迎来到阿熊的blog~~ 1532

计网实验 应用层协议消息的捕获和解析

计网实验 应用层协议消息的捕获和解析 一、实验内容和实验步骤描述 1.实验类别 协议分析验证型。 2.实验任务 应用层协议消息的捕获和解析。 3.实验内容 本次实验主要包含下列内容: (1)使用 Wireshark 软件捕获 HTTP 消息,分析其消息头,理解 HTTP 的通信原理; (2)使用 Wireshark 软件捕获一次从客户端发送 Email 的过程,分析 SMTP 消息,理解 Email 系统中发送邮件的通信原理; (3)使用 Wireshark 软件捕获一次从客户端接收 Email 的过程,分

taylorswift的博客 3108

【计网】从零开始学习http协议 --- http的请求与应答

本文详细讲解了什么是http协议,并通过将Linux云服务器的端口开放,实验了浏览器访问服务器进程服务。然后讲解了http协议中的Request 和 Response,并实现了Request的反序列化!!!

叫我龙翔的博客 4922

计网协议 | HTTP

http/ 协议结构/ http get ,post/ 1.0 1.1 2.0区别

GangsterChen & Codes 382

【计网】从零开始学习http协议 ---理解http重定向和请求方法

本文生动讲解了http协议中的3XX状态码对应的重定向现象。从底层讲解了http请求方法GET和POST的区别,并通过代码进行了验证!

叫我龙翔的博客 3909

计网 - HTTP 协议_强制缓存和协商缓存的区别

文章目录Pre请求响应和长连接HTTP 2.0 的多路复用HTTP 方法和 RestFul 架构HTTP 方法缓存强制缓存协商缓存总结 Pre 超文本传输协议(HyperText Transfer Protocol,HTTP)是目前使用最广泛的应用层协议。在网站、App、开放接口中都可以看到它。HTTP 协议设计非常简单,但是涵盖的内容很多。 1990 年蒂姆·伯纳斯·李开发了第一个浏览器,书写了第一个 Web 服务器程序和第一张网页。网页用的语言后来被称作超文本标记语言(HTML),而在服务器和客户端

小工匠 3万+

计网协议combining HTTP-TCP-IP

计网各层协议粗略版极速提取

shuia64649495的博客 956
上一篇: Java基础(7)-ConcurrentHashMap与CAS
下一篇: Java基础(8)-异常体系以及项目中的运用
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值