0x00 前言

  最近在学习计算机网络知识,开始找资料时,好多大佬推荐的书籍是《计算机网络-自顶向下方法》和《TCP/IP详解卷1:协议》这两本书籍,不知道其他人学的怎么样,但我看的是困了的。而英文原版,我又看不懂。对于计算机网络入门来说,个人觉得《网络是怎样连接的》-户根勤 这本书不错。这本书用通俗易懂的语言从客户端浏览网页开始从最上层的http协议讲起,一直到服务器接收数据回应,将数据传输的过程中涉及的协议和方式都阐述的明明白白,适合像我这种新手从整体了解网络通信的过程,之后可以再加深学习其中涉及的知识。害,废话有些多,从http协议正式开始吧。

 0x01 HTTP协议

HTTP:Hypertext Transfer Protocol,超文本传送协议,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

 0x02 http的URL

URL

  上图就是我们常见的网络访问url,其中http:代表的是http协议,当然它也可以是其他协议,像ftp,file等协议,在这就不多说了,后面的解析看下图就明白了

URL

  这张图简单明了 我就别废话了 接着走

 0x03 http协议内容介绍

  HTTP 协议定义了客户端和服务器之间交互的消息内容和步骤,其基本思路非常简单。首先,客户端会向服务器发送请求消息。

  请求消息中包含的内容是“对什么”和“进行怎样的操作”两个部分。其中相当于“对什么”的部分称为 URI(Uniform Resource Identifier,统一资源标识符)一般来说,URI 的内容是一个存放网页数据的文件名或者是一个 CGI(对 Web 服务器程序调用其他程序的规则所做的定义就是 CGI, 而按照 CGI 规范来工作的程序就称为 CGI 程序。)程序的文件名

  相当于接下来“进行怎样的操作”的部分称为方法。方法表示需要让Web 服务器完成怎样的工作,其中典型的例子包括读取 URI 表示的数据、 将客户端输入的数据发送给 URI 表示的程序等。

方法

  目前最常用的方法只有GET方法和POST方法,一般当我们访问 Web 服务器获取网页数据时,使用的就是 GET 方法。我们在表单中填写数据并将其发送给 Web 服务器时就会使用POST方法。

 0x04 http协议消息的内容格式

请求消息

回复消息

  注意:其中的空行和空格都是必须有的
  关于GET和POST方法所传递的数据 传输格式上有一点不同,如图所示

 0x05 http协议消息的消息头

  第二行开始为消息头。尽管通过第一行我们就可以大致理解请求的内容,但有些情况下还需要一些额外的详细信息,而消息头的功能就是用来 存放这些信息。消息头的规格中定义了很多项目,如日期、客户端支持的 数据类型、语言、压缩格式、客户端和服务器的软件名称和版本、数据有 效期和最后更新时间等。

  这些项目表示的都是非常细节的信息,因此要想 准确理解这些信息的意思,就需要对 HTTP 协议有非常深入的了解。下表列举了主要的头字段供大家参考,但不必全部弄明白。消息头中的内容 随着浏览器类型、版本号、设置等的不同而不同,大多数情况下消息头的 长度为几行到十几行不等。

下表是有关消息头资料



 0x06 http协议回复消息的状态码

   状态码的第一位数字表示状态类型,第二、三位数字表示具体的情况。下表列举了 第一位数字的含义

 0x07 http协议消息的一个例子

  通过这个例子 我认为可以更加清晰的理解http消息

请求消息

回复消息

  注意:1 条请求消息中只能写 1 个URI。如果需要获取多个文件,必须 对每个文件单独发送 1 条请求。

 0x08 结尾

  以上内容,是我根据《网络是怎样连接的》这本书籍,摘下了我认为比较重要的知识点,所以如果哪里有错误或者还有内容需要补充,欢迎大佬们在评论区留言指正 !

Last modification:July 24th, 2020 at 06:16 pm
如果觉得我的文章对你有用,请随意赞赏