当前位置: 首页 > news >正文

Linux网络 - HTTP协议

文章目录

  • 前言
  • 一、HTTP协议
    • 1.url
      • url特殊字符
    • request
    • respond
  • 总结


前言

上一章内容我们讲了在应用层制定了我们自己自定义的协议、序列化和反序列化。
协议的制定相对来讲还是比较麻烦的,不过既然应用层的协议制定是必要的,那么肯定已经有许多计算机大佬们已经制定好了非常完善的协议了,我们今天就来学习我们日常生活经常会用到的HTTP协议。

需要用到的软件为 postman,fiddler。这些都是知名的抓包工具。

一、HTTP协议

在这里插入图片描述
现在我们使用浏览器一般都是使用http协议和https协议,在近些年,由于https更为安全可靠,许多浏览器都默认强制使用https协议进行访问,各大厂商也跟着一起改变。

Http在传输层也是采用的也是TCP协议。

所以,由于浏览器限制,这里我使用postman来进行http协议的访问。

1.url

之前我们学习udp和tcp协议我们知道,通过ip地址和端口号的方式就能访问到全网中的唯一主机所绑定端口号的服务器。

那么url是什么?

在这里插入图片描述

以上图为例,红色框圈起来的就叫做url(统一资源定位系统(uniform resource locator;URL)。

它的用途就是通过ip地址+端口号+文件路径的方式,来访问到全网中唯一主机中唯一资源。以?号结尾。

在这里插入图片描述
后面?的部分可以理解为参数,这是一种K/V式的参数,多个参数之间用&隔开。

url特殊字符

在这里插入图片描述
上图可以看出,这样的一串http地址,每个部分需要有不同的字符来隔开,例如/ : @ ? # 那么如果我们就是要在参数中加入这些字符,应该怎么办?
我们很容易就想到一种方式就是转码和解码。
在这里插入图片描述

request

在这里插入图片描述
我们这里向百度搜索helloworld,就是向百度的服务器发送了这样一个request请求报文。

这里我们没有发送正文。

respond

当我们向百度服务器发送上面这样的正文之后,百度的服务器也要给我们一个respond响应报文。
在这里插入图片描述

一般状态码200 为成功,404为未找到资源

需要注意的是,这里有个content-length,这个参数表示后面的正文字符长度,看过我的上个文章就知道,想要获取一个完整的报文,就需要向报头传长度进去。


总结

本章主要讲解了一下http协议中的url与请求报文和响应报文。
下一章我们来讲解如何自己实现一个httpserver。

http://www.lryc.cn/news/375212.html

相关文章:

  • 面试题——Nginx
  • 持续学习的综述: 理论、方法与应用
  • 跨域资源共享(CORS)问题与解决方案
  • 实用软件分享-----一款免费的人工智能替换face的神器
  • 不可思议!这款 Python 库竟然能自动生成GUI界面:MagicGUI
  • 论文发表CN期刊《高考》是什么级别的刊物?
  • 离散数学复习
  • 华为网络设备高频命令
  • 信友队:南风的收集
  • 找工作小项目:day16-重构核心库、使用智能指针(3)
  • 软考中级|软件设计师-知识点整理
  • HTML5基础
  • python,ipython 和 jupyter notebook 之间的关系
  • 聊聊DoIP吧(三)-端口号port
  • 【将xml文件转yolov5训练数据txt标签文件】连classes.txt都可以生成
  • 针对k8s集群已经加入集群的服务器进行驱逐
  • go 1.22 增强 http.ServerMux 路由能力
  • 赶紧收藏!2024 年最常见 20道设计模式面试题(二)
  • Java面向对象设计 - Java泛型约束
  • 什么是内存泄漏?如何避免内存泄漏?
  • 元组(tuple)(Python)
  • 【C++进阶学习】第二弹——继承(下)——挖掘继承深处的奥秘
  • LangChain-ChatGLM本地搭建|报错合集(win10)
  • IP地址简介
  • 谈吐的艺术
  • Linux 和 分区
  • ⭐ ▶《强化学习的数学原理》(2024春)_西湖大学赵世钰 Ch3 贝尔曼最优公式 【压缩映射定理】
  • Pikachu上的CSRF以及NSSCTF上的[NISACTF 2022]bingdundun~、 [SWPUCTF 2022 新生赛]xff
  • 大数据分析-二手车用户数据可视化分析
  • AI训练Checkpoint对存储的影响