TCP/IP协议族
了解http之前先来看一下TCP/IP协议族
- IP、TCP、FTP、HTTP、UDP、PPPoE
- SNMPFDDI,ICMP
- SLIP、PPP、ARP、DNS、SMTP
没错,就是这么多,而且还有一些没有列举出来。下面按照分层列举出来各个协议:
TCP、IP和DNS
一张总的图片了解一个请求发出时做了那些工作:
TCP三次握手之后还有另外两个概念:持久链接与管线化
先来说一下他们分别解决了连接时的什么问题:
1. 持久链接:减少TCP链接的重复建立和断开造成的额外开销,减轻服务器端的负载。
使用一张图来展现解决后的样子。
2. 管线化:增加一次请求的数量,并发发送多个请求。
(图片取材于《图解HTTP》)
主角http
从http的概念中得出http的一些特征:
- 支持客户/服务器模式。
- 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
- 灵活:HTTP允许传输任意类型的数据对象。
- 无连接:无连接的含义是限制每次连接只处理一个请求。
- 无状态:HTTP协议是无状态协议。
http是无状态协议,如果没有其他辅助的东西,那么客户端发出请求后,服务器端是没有保存各个客户端的信息的,但是这样的话每个客户端都必须记住导致的结果是服务器不堪重负,所以引入了Cookie技术。
Cookie,http的通讯认证
Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态,对Cookie状态的管理。使用图表示可能更清楚
使用Chrome,采用隐身模式访问CSDN的登陆页面,F12打开Console,切换到network标签页找到对应的那条请求,具体如下图
然后我又刷新了一次页面,这时候再来看一下Cookie信息
这时Cookie的状态管理就应该很清楚了