HTTP - 01 - 概述

写在前面

本来打算看Nginx的Lua,初略扫了一下,发现得先学习一下HTTP、Linux IO知识。

刚好原定学习计划中,就有HTTP,顺便看下。

在GitHub上面找到一个关于《HTTP权威指南》 不错的小结:https://github.com/woai30231/http

里面一些知识点 是用问答方式来记录,个人觉得 还不错,可以结合书一起看。每一个章节看完,去看下小结,加深一下理解

这种问答形式还有一个好处,有点像是面试的感觉,虽然是自问自答,但也能有一点作用吧。

这里内容就直接从原博那里复制过来了(选择性、非所有)。

http是干嘛的?

http是数据传输协议(超文本传输协议),用来沟通客户端和服务器的!

什么是资源?

记住一句话,网络上的一切内容皆资源,无论是静态文件,还是动态生成的代码等!

怎么理解URI以及它的子集?

首先URI从其概念来说是统一资源标识符,它的作用就是在网络上唯一确定一个资源;

就好比,在中国,身份证能唯一确定一个人一样!知道身份证号,就一定能确定一个人姓甚名谁一样!

它有两个子集:

URL(统一资源定位符)和URN(统一资源名),首先不特别声明,我们所说的URI就是指URL,URL是跟资源其在网络上的位置有关!

而URN是指资源跟其名字有关,URN是未来的趋势,不过貌似具体实施现在还在商讨中!所以短时间之内URN难以取代URL!

什么是事务?

说白了事务就是“一次http链接(不包括tcp/ip连接,只包括一次http报文发送与接收)”的整个过程,由请求命令和响应结果组成!中间数据格式是http报文。

我们平常打开一个网站,里面包括很多事务!如:请求网页文档、请求某个logo图片及请求某个视频等!

方法指什么?

方法就是客户端向服务器发起的请求命令!常见方法有:get、post、delete、put、head!

状态码有什么用?

状态码对程序有用,便于程序进行相关控制!原因短语对人有用!

简单介绍一些报文!

首先报文是http协议一种纯文本的数据格式,分为请求报文和响应报文;

两种报文都具有类似的结构,分别由三个部分构成:起始行、首部、主体;

起始行描述报文干了什么!首部描述报文传输的具体细节!主体描述传输的实际内容!

什么是TCP/IP?跟HTTP有什么关系?

tcp/ip是全世界的计算机和网络设备常用的层次化分组交换网络协议集!

简单的说,http协议是一个应用层协议,位于tcp/ip协议的上一层,tcp/ip协议的主要作用就是过滤掉每个计算机的差异性,隐藏相关弱点,使得对于http协议来说提供的都是“相同的”接口!

在一次网络请求中,分别经历那些过程?

(a)浏览器从url中解析处服务器的主机名;

(b)浏览器将服务器的主机名转换成服务器的的ip地址;(可能经过去dns服务器查询)

(c)浏览器将端口号(如果有的话)从url中解析出来;

(d)浏览器建立一条与web服务器的tcp连接;

(e)浏览器向服务器发送一条http请求报文;

(f)服务器向浏览器回送一条http响应报文;

(g)关闭连接,浏览器显示文档

猜你喜欢

转载自blog.csdn.net/Simba_cheng/article/details/81609363