Linux网络基础2之http

news/2024/5/25 11:03:57/文章来源:https://blog.csdn.net/ky233/article/details/135446799

这里是ky233的主页,欢迎光临~icon-default.png?t=N7T8https://blog.csdn.net/ky233?type=blog

目录

一、认识URL

1.认识URL

2.urlencode和urldecode

二、HTTP协议格式

1.快速构建http请求和相应的报文格式

三、http demo

1.GET和POST

2.HTTP的状态码

3.http的特征

4.HTTP常见Header


应用层:就是程序员基于socket接口之上编写的具体逻辑,做的很多工作,都是和文本处理有关的!——协议分析与处理

所以http协议,一定会具有大量的文本分析和协议处理!

一、认识URL

1.认识URL

平时我们俗称的 "网址" 其实就是说的 URL

我们平时上网无非就是我们想获取或者上传资源

一张图片、一这段视频,这些资源在没有被拿到的时候是在对应的Linux服务器上,在一个服务器上可能存在很多的文件资源,当我们请求资源拿到本的的时候,服务器会打开你要访问的文件,读取该文件通过网络发送到客户端

所以我们要打开这个文件先要找到它,这时候就用到路径来标识!

所有的资源:全球范围内,只要找到它的url就能访问到该资源,也成为www,万维网

2.urlencode和urldecode

像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现. 比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义。

 转义的规则如下: 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式

例如:

二、HTTP协议格式

在双方通信之前已经进行了三次握手的过程

1.快速构建http请求和相应的报文格式

单纯在报文的角度,http可以是基于行的文本协议!

如何看待:在三次握手之后,这不就是客户端在给服务器发送大量的字节流吗?

所以我们可以看成是线性结构

如何看待,也是看成线性结构!

其中请求行中的协议版本是客户端告诉服务端,客户端用的http版本,而响应行中的协议版本是服务端告诉客户端,服务端用的http版本

http是如何区分报头和有效载荷的呢?

有效载荷:正文部分的内容

答案很简单,是通过空行\r\n的方式来区分的

也就是说我们一定能把报头读完,所以接下来读的就是正文,那么我们如何得知正文的大小呢?

其中报头当中就包含了一种属性Cotent-Length,后面跟的就是正文的长度

三、http demo

1.GET和POST

我们平时上网行为分为两种,从服务器拿资源,以及上传资源

其中拿资源一般GET,上传资源两者都可

GET:是通过URL向服务端传参的,会回显用户的私密信息,不够私密

POST:是通过http的正文部分提交参数的,不会回显,在私密性方面是有保证的

注意:私密性不是安全性

2.HTTP的状态码

永久重定向301和临时重定向302、307

永久重定向:影响用户后续的请求策略如看付费电影,买一次直接就可以看了

临时重定向:不影响用户后续的请求策略

也就是说,客户端发送了一个请求,服务端返回错误码302原因是found,并且会告诉一个新的地址,客户端在向新的地址发送请求

3.http的特征

1.简单快速

2.无连接:虽然底层是TCP但是连接时TCP的事情和我http有什么关系

3.无状态:协议是不会记录你的访问记录之类的,但是登录网站会记录,这是因为因为业务逻辑来管的

4.HTTP常见Header

  • Content-Type: 数据类型(text/html等)
  • Content-Length: Body的长度
  • Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent: 声明用户的操作系统和浏览器版本信息;
  • referer: 当前页面是从哪个页面跳转过来的;
  • location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
  • Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;

Cookie简单来说就是用来保存用户的私密信息的

但是这种不安全,有风险,所以现如今我们在登陆或者注册的时候生成一个session id,在服务端保存了私密信息,这样客户端发送这个id就可以自动登录了

Set-cookie是写在代码中的,设置之后就可以在http的属性中看到cookie的内容

5.短链接与长连接

短链接就是指一次只传输一个文件如一张图片,长连接则是一次性传输多个文件

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

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

相关文章

Three 材质纹理 (总结三)

THREE.MeshLambertMaterial(网格 Lambert 材质) 该材质使用基于非物理的Lambertian模型来计算反射率。可以用来创建暗淡的并不光亮的表面,该材质非常易用,而且会与场景中的光源产生反应。 MeshLambertMaterial属性 # .color : …

STM32/GD32——电源管理单元PWU

芯片选型 Ciga Device — GD32F470系列 PWU介绍 PMU全称Power Management Unit,电源管理单元。 电源域 总共有三大电源域,包括VDD / VDDA域,1.2V域和备份域。 VDD/VDDA 域 提供PMU 常规电源供应以下模块的供电: 看门狗主频晶…

ASP.NET Core Web API 流式返回,逐字显示

Websocket、SSE(Server-Sent Events)和长轮询(Long Polling)都是用于网页和服务端通信的技术。 Websocket是一种全双工通信协议,能够实现客户端和服务端之间的实时通信。它基于TCP协议,并且允许服务器主动向…

OpenCV读取tensorflow神经网络模型:SavedModel格式转为frozen graph的方法

本文介绍基于Python的tensorflow库,将tensorflow与keras训练好的SavedModel格式神经网络模型转换为frozen graph格式,从而可以用OpenCV库在C 等其他语言中将其打开的方法。 如果我们需要训练并使用一个神经网络模型,一般情况下都是首先借助Py…

Linux:好用的Linux指令

进程的Linux指令 1.查看进程信息 ​​​​ps ajx | head -1 && ps ajx | grep 进程名创建一个进程后输入上述代码,会打印进程信息,当我们在code.exe中写入打印pid,ppid,这里也和进程信息一致。 while :; do ps ajx | he…

国内新闻媒体排行,如何邀约媒体现场造势?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 国内新闻媒体排行可以根据多个维度进行,例如影响力、发行量、网站流量等。以下是一些常见的国内新闻媒体排名方式: 综合影响力排名:人民日报、新华社、…

如何在idea中配置tomcat服务器,然后部署一个项目

文章目录 前言第一步 先新建一个空项目第二步 添加框架支持第三步 添加配置及如何部署最后一步 运行及检查有没有问题总结 前言 本章学习的是在idea中配置tomcat服务器,然后部署一个项目 如果没有下载Tomcat服务器的可以在上一个博客观看下载及手动部署,…

小红书春日流行,提炼爆款3大打造方向

迈入春季,万物焕新,市场将迎来消费焕活的新周期,小红书会诞生怎样的种草趋势?品牌应该如何把握春季营销的内核? 本期,千瓜将通过数据分析与趋势解构,帮助品牌找准春日营销新视角,乘上…

virtual-pc环境安装

由于微软早已停止对virtual pc的支持,所以vitrual pc找到的版本只能运行在32位机器上,例如win7。 在vm上虚出来一个win7,然后再在win7上安装virtual pc 2007。 virtual pc 声称支持所有的x86的操作系统。 所需资源:链接&#x…

【Redis】Redis常用命令一

1.keys:返回所有满足条件的key,比如: KEYS pattern时间复杂度:O(N),返回值:匹配pattern的所有key。 • h?llo 匹配 hello , hallo 和 hxllo • h*llo 匹配 hllo 和 heeeello • h[ae]llo 匹配 hello 和 …

STM32OLED调试工具

OLED介绍 4个引脚的oled : GND引脚接地,VCC接3.3v的电源 SCL与SDA是I2C通信的引脚 使用OLED显示屏驱动函数模块 接线图 将oled函数调试的代码引入到工程项目中 oled工程代码 OLED.C文件代码 #include "stm32f10x.h" #include "OLED_Font…

Restormer: Efficient Transformer for High-Resolution Image Restoration

Abstract 由于卷积神经网络(CNN)在从大规模数据中学习可概括的图像先验方面表现良好,因此这些模型已广泛应用于图像恢复和相关任务。最近,另一类神经架构 Transformer 在自然语言和高级视觉任务上表现出了显着的性能提升。虽然 T…

人工智能迷惑行为大赏——需求与科技的较量

目录 前言 一、 机器行为学 二、人工智能迷惑行为的现象 三、产生迷惑行为的技术原因 四、社会影响分析 五、解决措施 总结 前言 随着ChatGPT热度的攀升,越来越多的公司也相继推出了自己的AI大模型,如文心一言、通义千问等。各大应用也开始内置…

C/C++程序设计实验报告2 | 循环结构实验

本文整理自博主学校大一(2021级)C/C专业课的课程实验报告,适合学弟妹或C语言初学者入门C语言学习、练习。 编译器:gcc 10.3.0 ---- 注: 1.虽然课程名为C程序设计,但实际上当时校内该课的内容大部分其实都是…

运动想象 (MI) 迁移学习系列 (4) : EEGNet-Fusion-V2

运动想象迁移学习系列:EEGNet-Fusion-V2 0. 引言1. 主要贡献2. 网络结构3. 实验结果3.1 不同参数的评估3.2 不同参数的评估3.3 与基准模型比较 4. 总结欢迎来稿 论文地址:https://www.mdpi.com/1424-8220/23/18/7908 论文题目:Excellent fine-tuning: F…

FPGA - 时钟Buffer的探究

1、IBUF : FPGA上所有的输入信号必须进过IBUF,vivado会自动给所有输入信号分配IBUF OBUF:FPGA上所有的输入信号必须进过IBUF,vivado会自动给所有输入信号分配OBUF BUFG:专用时钟的资源,目的是减少时钟抖动、增强时钟的驱动能力,vivado不会给信…

24计算机考研调剂 | 东北石油大学

东北石油大学智能物探团队招生宣传 考研调剂招生信息 学校:东北石油大学 专业:工学->地质资源与地质工程->矿产普查与勘探 年级:2024 招生人数:2 招生状态:正在招生中 联系方式:********* (为保护个人隐私,联系方式仅限APP查看) 补充内容 团队介绍: …

.NET高级面试指南专题十八【 外观模式模式介绍,提供了简化的接口,隐藏系统的复杂性】

介绍: 外观模式是一种结构设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式定义了一个高层接口,使得子系统更容易使用。 原理: 外观类(Facade Class):提供了一…

PFA洗气瓶特氟龙连续洗气反应装置

洗气瓶是一种洗去气体中杂质的仪器,是将不纯气体通过选定的适宜液体介质鼓泡吸收(溶解或由于发生化学反应),从而洗去杂质气体,以达净化气体的目的。在有可燃性气源的实验装置中,洗气瓶也可起到安全瓶的作用…

Github上哪些好用的工具

专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! Qexo-爱写博客的师傅强烈推荐 漂亮的 Hexo 静态博客编辑器。该项目是基于 Django 的 Hexo 静态博客管理后台,支持文章管理、…