实用指南:40.应用层协议HTTP(三)

news/2025/9/26 8:07:39/文章来源:https://www.cnblogs.com/ljbguanli/p/19112427

实用指南:40.应用层协议HTTP(三)

重谈状态码(重定向)

临时重定向:一家开在学校东门的牛肉面馆,因为道路施工尘土飞扬,临时搬到了学校的西门,并在原来的位置贴上了告示。有一天,小王想去吃牛肉面了,去了东门的位置,看了告示就转头去西门位置了。过了一个月,小王又想去吃牛肉面了,先去东门的位置。就是但由于之前告示上写的是临时搬去西门,这次他还

永久重定向:还是牛肉面馆,还是相同的原因,这次告示上写的是永久搬去西门位置。第一次,小王去吃牛肉面,先去东门,看了告示就转头去西门位置了。过了一个月,小王又想去吃牛肉面了,永久搬去西门。就是这次他直接去西门吃了,因为他记得告示内容写的

理解:

临时重定向:不改变任何信息(登录跳转,页面跳转)

永久重定向:网站更换域名,更换网址(搜索引擎更新网站链接)

  • 301,Moved Permanently,网站换域名后,自动跳转到新域名;搜索引擎更新网站链接时时候用。
  • 302,Found 或 See Other,用户登录成功后,重定向到用户首页。

报头Location,记录着重定向的地址。

重定向:发送请求,接收到重定向响应后,客户端(浏览器)会分析报文,发现是30X,二次发送请求,url就用Location对应的地址。

实验1:重定向到新的网址

注意的点:需要对uri进行判断,判断其指向的是静态资源还是动态服务

实验2:重定向到我们自己内部资源(允许调整对404错误的处理)

注意:重定向404时,只用带上相对于web根目录的相对路径就行了。

浏览器生态

背景:20多年前,上网都用电脑的时代 -> 最重点的一款软件 -> 浏览器 -> 所有人想上网,都得打开浏览器 -> 浏览器是流量的入口 -> 微软在做,谷歌也在做。微软本身有windows操作系统,且规模庞大,通过预装浏览器的方式,收益颇丰。谷歌为了对抗竞争,将自己开源了(开源也是一种商业手段)

浏览器距离利益太近了 -> 各自都有自己的浏览器技术 ->大家水平都很高 -> 谁也不服谁 -> 对于标准的支持就不太好了。

再谈方法(GET,POST)

GET:获取资源

POST:上传资源

要是你想上传数据呢???如何上传??可能通过html的form表达来上传。

action="/login"表示想请求的服务,method="GET"表示请求方式

GET假如要进行参数提交,凭借uri进行提交的!

POST:提交参数的,提交方式是通过http request正文方式提交的!

可能根据uri中的 /register 注册指定方法,提供对应的服务。

GET和POST特点

GET:

1)获取静态网页或者资源

2)提交参数以uri方式提交

POST:

提交参数,以正文进行提交

GET vs POST

1)GET提交参数,建议提的参数不宜过长,因为uri长度一般是有限的

2)POST正文传参,意味着传递长数据

POST方式:不会回显,更私密 -> 都不安全!因为行抓取,明文传输不安全 ->要做到真正的安全,必须对报文进行加密(https协议)

fiddler抓包软件原理:

截取浏览器发给服务端的请求,转发给服务器。收到来自服务器的响应后,发回给浏览器。为什么可以截取?因为fiddler和浏览器处于同一个局域网,发出报文局域网内所有主机都能收到。

fiddler抓到的报文,是浏览器已经构建好的http请求->这个请求就是要发到网络中的,因此直接接收和转发即可。

GET请求服务可以套壳

GET,允许构造HTTP请求,填充参数,就可以套壳百度的/s检索技巧。就是例如:百度的/s方法,请求方式

短连接存在的困难

Connection报头,长连接。

多进程或者多线程来处理连接的话,每次处理完请求就关闭,一次处理一个请求。就是短连接存在的问题:如果tcpserver采用的图片等资源很多的话,消耗太大了。就是建立连接:tcp三次握手,accept,fork或者pthread_create,网页中有一张图片就要发送一次请求,要

长连接

Connection:keep-alive,表示保持连接,要复用连接(长连接)

Connection:close,表示请求/响应完后,关闭连接(短连接)

长连接:一条连接就可以交互非常多的请求(HTTP/1.1)(网络版本计算器)

回归HTTP

HTTP协议是一个无连接,无状态的协议,即每次请求都需要重新建立新的连接,且服务器不会保存客户端的状态信息。

  • 无连接:让tcp保持长连接,通信双方约定好的结构体)就是无关连接概念,只和request和response有关(协议本质
  • 无状态:会给用户造成困扰 ->不会记录用户信息-> 登录手动输入,扫码

cookie和session

cookie引入的原因:HTTP服务器不会记录客户端的状态信息,要是是要求保持登录状态才能浏览的网页,用户每次跳转到新的页面,都要重新登录。

cookie原理:第一次登录时要求手动输入,返回响应的报头中有Set-Cookie字段,以及对应的值。浏览器收到响应,浏览器会保存Set-Cookie的内容到文件 或者 内存(内存cookie,会随着浏览器关闭,自动释放)。下一次请求这个资源时,服务器发送请求会自动携带cookie材料(Cookie报头携带内容),这样就不用用户主动输入了。

新的技能会带来新的问题,这时又要有新的技术去解决(互斥锁线程饥饿问题用条件变量同步解决)。

cookie问题:Cookie是明文传输在HTTP报头的通过。若是有一个黑客,用抓包工具抓到HTTP请求,1)黑客就能够你的账号进行登录,访问服务器资源了 2)用户名和密码是明文的,私密信息就泄露了!(例如转账等操作)

为了一定程度解决安全难题,session工艺。

version2:cookie+session(会话管理与会话保持)

cookie+session:服务器在收到客户端的请求,形成一个文件叫做session,并有其对应的唯一session id值(这个id值允许借助毫秒级时间戳+随机数,哈希函数等给出),这个材料会记录用户信息(用户私密信息,在服务端保存了)。响应时用Set-Cookie把这个session id发送给浏览器,浏览器保存cookie到文件/内存中。下一次请求只用把该session id携带上,这样就不用用户再次输入了,且账号密码不是明文传输了,更安全了。

貌似还是有难题:此时有一个黑客,经过抓包工具,拿到了session id,还是可能构建请求发送给服务器,以你的身份进行访问。没错,但是相对于纯cookie,他的密码和账号不是明文了,对于转账支付等场景就解决了。除此之外,还有辅助方案:ip资源,地址的变更(可以代理服务器处理),还有异常账号检测机制(检测账号异常情况,例如给好久没聊天的好友发送大量信息)

session的管理:服务端假设拥护session,就会存在大量session文件,怎么管理这些session文件?先描述,在组织。

浏览器对于请求的处理

80,但这并不意味着它只能使用80端口。就是HTTP协议的默认端口

你可以在浏览器中输入 xxx.xx.xx.xx:8080,浏览器会向目标服务器的8080端口发送一个HTTP请求

xxx.xx.xx.xx:8080HTTP请求,发往8080端口你的情况:无明确协议(默认HTTP),但有明确端口(8080)。
http://xxx.xx.xx.xxHTTP请求,发往80端口明确协议,但无端口,使用HTTP默认端口80。

http://ip:8080,浏览器会根据这个url做解析,发送请求给8080端口,http不是只能采用80端口。

HTTP状态码总结:

1XX:例如上传大档案的时候

4XX:例如没有权限,没有资源,提交表单格式不正确

5XX:服务器处理请求错误,例如服务器崩溃。

代码:

Linux-remote: linux远程仓库https://gitee.com/its-quite-six/linux-remote/tree/master/25_9_23/HTTP

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

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

相关文章

建德市住房和城乡建设局网站制作公司官网的步骤

目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…

南宁制作网站网页代码大全

我初始化h2数据库, 然后把jar 放到 springside-4.0.0.RC2\examples\mini-web 中 ,最后配置启动tomcat。 就出现这个错。 最开始我用 quick-start.bat ,但总是执行到一半就 挂掉了。 提示spy 包没找到 。 这个是在装载 xml,解析成b…

网站建设调研提纲wordpress评论页面

目录 1. 文本分类 2. 图像识别 3. 生物信息学 4. 金融预测 5. 其他领域 1. 文本分类 垃圾邮件过滤:SVM通过训练大量标记为垃圾邮件和非垃圾邮件的样本,学习出能够区分两者的模型,从而实现对新邮件的自动分类。情感分析:在社…

【GitHub每日速递 250926】12 周 24 课,边学边练!微软 AI 初学者的通关秘籍

原文:https://mp.weixin.qq.com/s/t99TeeaVhDTuzobY6WkYng 揭秘Linera:高可扩展区块链基础设施,附CLI工具快速上手攻略 linera-protocol 是一个基于Rust构建的高性能、去中心化微服务区块链协议的底层框架。简单讲,…

mcp-use mcp server 交互工具

mcp-use mcp server 交互工具mcp-use mcp server 交互工具,当然mcp-use 不支持简单的mcp client,还支持agent开发,通过mcp-use 我们可以将llm 与mcp server 集成起来,提升agent 的能力 简单示例 import asyncio i…

年薪破百万、涨薪60%,人形机器人企业疯狂「抢人」

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490872025年,人形机器人不再只是春晚舞台上的炫技明星,而是逐渐走进具…

深入解析:HttpClientFactory vs new HttpClient:.NET Core HTTP 客户端的正确打开方式

深入解析:HttpClientFactory vs new HttpClient:.NET Core HTTP 客户端的正确打开方式2025-09-26 08:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important;…

石家庄整站优化技术园区网互联及网站建设项目

目录 统一数据返回一. 概念二.实现统一数据返回2.1 重写responseAdvice方法2.2 重写beforeBodyWriter方法 三. 特殊类型-String的处理四. 全部代码 统一数据返回 一. 概念 其实统一数据返回是运用了AOP(对某一类事情的集中处理)的思维,简单…

自助建个人网站哪个好购物网站框架

在 PHP 中,多进程的处理通常会遇到一些挑战,比如资源共享、进程间通信、性能优化等。Swoole 是一个高性能的协程和多进程框架,旨在为 PHP 提供异步、并发、协程等功能,解决了传统 PHP 环境中的多进程管理问题。通过使用 Swoole&am…

华为投的这家上海独角兽,要IPO了!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087近日,赛美特信息集团股份有限公司(以下简称“赛美特”)正式向港…

0134_委托模式 (Delegate)

委托模式 (Delegate) 意图 两个对象参与处理同一个请求,接收请求的对象将请求委托给另一个对象来处理。 委托模式的核心思想是:一个对象将某些职责交给另一个专门的对象去完成,从而实现职责的分离和代码的复用。 UM…

外贸网站建设公司平台中建国能建设集团网站

强烈建议去看看《上海交通大学生存手册》,内容可能有点长,但讲得很好,说出了大学教育的本质。如果几年前我能看到它,也许我的大学生活可能会不一样。 只是,没有如果。 那么我把这本手册推荐给正在上大学或者是将要上…

注册过哪些网站瑞丽航空公司官方网站

https://vjudge.net/problem/UVA-11971 有一根长度为n的木条&#xff0c;随机选k个位置把它们切成k1段小木条。求这些小木条能组成一个多边形的概率。 将木条看做一个圆&#xff0c;线上切k刀等价于圆上切k1刀 如果能组成多边形&#xff0c;每一段木条的长度都要<圆周长/2 反…

个人或企业做网络贸易的主要网站企业信用信息查询公示系统网址

ChatGLM2-6B介绍&#xff1a; 介绍 ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本&#xff0c;在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上&#xff0c;ChatGLM2-6B 引入了如下新特性&#xff1a; 更强大的性能&#xff1a;基于 ChatGLM 初…

网站被黑了多久恢复wordpress 文章免审核

值转换器 valueconvert 使用ValueConverter需要实现IValueConverter接口&#xff0c;其内部有两个方法&#xff0c;Convert和ConvertBack。我们在使用Binding绑定数据的时候&#xff0c;当遇到源属性和目标控件需要的类型不一致的&#xff0c;就可以使用ValueConverter&#xf…

网站图标怎么设置建筑公司需求发布网站

SSE是server-sent events协议简称,SSE协议主要是依托于HTTP链接用来从服务端将消息、信息、事件推动给客户端的协议。 SSE简介 SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的…

邯郸网站设计公司排名wordpress 显示微博

大家好&#xff0c;我是『芯知识学堂』的SingleYork&#xff0c;前面给大家简单介绍了『开源项目』基于STM32的智能垃圾桶之成员简介&#xff0c;相信有很多小伙伴都已经忍不住跃跃欲试了&#xff0c;别着急&#xff0c;从这一篇开始&#xff0c;笔者将会带领大家一步一步来完成…

假如电脑的服务器关闭后做的网站还能打开吗logo在线设计生成免费

众所周知&#xff0c;验证码在我们的生活中都是非常常见的&#xff0c;很多公司都在各种折腾各种各样的验证码&#xff0c;这里简要的用一个小案例来实现验证码的功能&#xff08;ps:其实我挺讨厌验证码这个东西的&#xff09;。 建立一个javaweb工程&#xff0c;新建login.htm…

深圳微商城网站制作报价网站怎么建设以及维护

戳蓝字“CSDN云计算”关注我们哦&#xff01;极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;1975年4月4日&#xff0c;是历史上普通的一天。这一天&#xff0c;有两个人成立…

有关网站开发的国外书籍中国肩章

今天和大家一起探讨权限管理方面的设计心得。权限管理&#xff0c;是B端后台系统一个重要的组成部分&#xff0c;属于底层的支撑功能&#xff0c;系统内所有的功能&#xff0c;甚至字段的增减都涉及到权限的分配和管理。因此怎样配置后台的权限系统&#xff0c;以适应多变业务需…