遇见问题不要慌,首先回答HTTP是什么有什么特点,然后针对它的特点进行解释当然这是被虐以后的感悟。

1、HTTP是什么。

2、HTTP分为两段,客户端和服务器端。

3、请求和相应的报文格式。

4、HTTP底层采用TCP协议进行传输的。

5、HTTP1.1以后是长连接。

6、HTTP是无状态的。

7、使用cookie来进行状态管理。

8、请求步骤。

1、HTTP是什么。
1.1 HTTP概念。

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
HTTP是基于TCP/IP协议族上应用层的实现,在应用层上实现的协议还有FTP(用于文件的传输),DNS(用于解析域名)等。

1.2 HTTP特点。

简单快速:客户端向服务器端传递请求只需要传入请求方式和路径就可以了。

灵活:可以传输任意类型对象,传输的类型可以用Content-Type来标识。

无连接:一次请求即返回一个资源,但是在HTTP1.1默认为长连接,就是一次请求之后不会理解关闭连接通道。

无状态:对事物没有记忆功能后面会详细讲解。

2、HTTP分为两段,客户端和服务器端。

HTTP协议分为两端,客户端和服务器端。服务器端需要一直保持着正常运行等待客户端的请求,针对客户端的请求回应相应的响应数据。

3、请求和相应的报文格式。

这里解释的是HTTP的第一个特点,简单。简单主要体现在报文格式。快速是因为HTTP协议简单,是的HTTP服务的程序规模小,所以速度快。

3.1 HTTP的请求报文

当面试被问到HTTP以后
报文格式简单明了,来看一个实际的请求。

3.2 HTTP的响应报文

当面试被问到HTTP以后
不管是请求的报文还是响应的报文都是用空行来标识请求头结束,来区分请求头和请求体。HTTP可以传输任意类型的数据,通过Content-type来做标识,体现出它的灵活性。

4、HTTP底层采用TCP协议进行传输的。

HTTP底层是通过TCP进行传输的,所以传输信息是可靠的。有机会会进一步分析一下TCP和UDP的区别,以及TCP三次握手机制。

5、HTTP1.1以后是长连接。

在以前的HTTP协议每一次请求只能请求到一个资源然后就关闭连接了,在HTTP1.1之后就采用了长连接形式,请求到资源以后并不会马上关闭连接,可以接着发起请求。

6、HTTP是无状态的。

HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

7、使用cookie来进行状态管理。

在很多页面上都有登录功能,HTTP这种无状态会导致我们每一次进入都要重新登录,给用户的体验很差,此时可以用cookie对状态进行管理,可以在客户端设置cookie,请求的时候把cookie传递给服务器端,服务器拿到这个cookie就能找到对应的用户。

8、请求步骤。

第一步 根据主机和端口建立一个TCP链接。
第二步 将封装好的请求行、请求头、和请求体的报文通过TCP发送给服务器。
第三步 服务器将响应行、响应头和响应体通过TCP发送给客户端。
第四步 释放链接 如果connection模式为close的话则会关闭这个TCP链接,如果connection是keep-alive则这个链接会保存一段时间。

相关文章: