HTTP学习笔记(1)

最近工作有点闲。一直想着充实下自己。正好在知乎上有人推荐了HTTP权威指南这本书。


HTTP学习笔记(1)_第1张图片

之所以选择学习HTTP,是因为某种程度上工作需要罢了。最近一段时间一直在自学Python,需要写爬虫搜集各大招聘网站的招聘信息。但是我本人对网络的机理一无所知,导致经常知其然而不知其所以然。数学专业出身的我,最讨厌的就是这点了。

HTTP,简单点说,是应用层的协议,基于TCP所在的传输层。按照书中的总结:TCP负责,1)无差错的数据传输,2)按序传输,3)未分段的数据流。而HTTP呢?我的理解是,感觉就像是两国之间的贸易公司。要么你下单,我按照你的要求发送货物。要么我下单,你按照我的要求来发送货物。而TCP协议则是航运公司,只负责运输货物。

在现实中,贸易公司下单,发货,双方需要填写订单,发货清单。同理,在网络中,双方也需要遵循类似的流程,用来规范双方。这个流程就是请求和响应的报文。

HTTP报文是由一行一行的字符串组成的[就像我们平常会把文字和数字区分开来一样,计算机语言也会有相似的区分。一般是字符串(既文本),整数,浮点数(小数)等]。

HTTP的报文格式如下:

请求报文:

  • GET /writer#/notebokks/88888/notes.txt HTTP/1.0
  • Accept:text/*
  • Accept-Language:en,fr

响应报文:

  • HTTP/1.0 200 OK
  • Content-type:text/plain
  • Content-length:19
  • Hi! Welcome to my Blog!

我们首先看请求报文请求报文一般是客户端,也就是你的浏览器发送给服务器的报文。GET很好理解哈。这是一个请求的命令。好比意思是说:“XXX,我文件丢在这个地方( /writer#/notebokks/88888/notes.txt)了,你把它发给我。记得是扫描后快递给我(HTTP/1.0),记得是文字哈(text),英文或者法文版的(en,fr)。不要拍照片给我哈。谢谢啦”。

当然,除开GET,还有许多其他请求命令。比如POST,PUT,DELETE,HEAD。 不过,比较常用的是GET和POST。

POST就是:你突然接到一个电话,是你老婆打来的,“老公,我最近看上了一个包包,有点儿贵。那个,你卡号是多少来着?” 。 “那个,咳,对,我卡号是多少来着?你让我想想哈。喂!喂!你听的到吗?喂!嘟!嘟!嘟!”

言归正传哈,毕竟是你老婆,卡号还是要给的。毕竟你老婆是你的,她的包也是你的,不过是左手和右手的关系。这么想,心情是不是突然好一点儿了啦。

言归正传2.0

HTTP服务器(支持HTTP协议的服务器)接受到来自你的请求后,当然不能坐视不理,只能立马按照你的要求将你需要的资源(文本,图片,视频等)按照你要求的协议版本(HTTP/1.0)发给你。这就是所谓的响应报文.

那个,咳,Hi! Welcome to my Blog! 这就是服务器快递给你的作业内容,虽然是英文的,但是也忒简单了点吧?也就比Hello World稍微复杂点。你英语老师是教体育的吧?

好吧!这就是HTTP权威指南的第一章。

难道第一章就这么点内容吗?

当然不是。

虽然第一章的标题叫HTTP概述,但是:

我的这个叫Preview of HTTP概述。

你可能感兴趣的:(HTTP学习笔记(1))