Linux网络 - HTTP协议


前言

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

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

一、HTTP协议

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

所以,由于浏览器限制,这里我使用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。

相关推荐

  1. Linux应用实战之网络服务器(一) HTTP协议介绍

    2024-06-12 02:20:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 02:20:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 02:20:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 02:20:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 02:20:03       18 阅读

热门阅读

  1. MyQueue(队列)

    2024-06-12 02:20:03       12 阅读
  2. 下载黄金投资软件的正确方法及注意事项

    2024-06-12 02:20:03       8 阅读
  3. 2024年,计算机相关专业还值得选择吗?

    2024-06-12 02:20:03       12 阅读
  4. YDT .netcore学习笔记

    2024-06-12 02:20:03       8 阅读
  5. Android应用图标到应用显示过程

    2024-06-12 02:20:03       12 阅读
  6. element-plus ui的使用说明

    2024-06-12 02:20:03       14 阅读