HTTP简介
超文本传输协议HTTP主要特点
一、支持客户/服务器模式
二、简单快速
三、灵活
四、无连接(限制每次连接只处理一个请求)
五、无状态 (无状态只是协议对事物处理没有记忆能力,缺少状态意味着,后续处理需要,前则信息,意味着必须重传)
现在主流的是HTTP 1.0 (普遍应用) 2.0(应用较少,牛逼吹的最大)
1.0 相比1.1 最明显的区别在于 引用了长连接技术 keep-alive
2.0 更合理、更先进,推广不开来的原因是因为1.1 完全能满足目前的应用,升级2.0成本太大。
请求/响应的步骤
一、客户端连接web服务器
二、发送HTTP请求
三、服务器接收客户端的请求并返回HTTP响应
四、释放连接TCP连接
五、客户端浏览器解析HTML内容
面试官提问:在浏览器地址键入URL,按回车键后的经历的流程
一、DNS解析
浏览器会依据URL逐层查询DNS服务器缓存,继续URL中的域名所对应的IP地址。
DNS缓存从近到远依次是,浏览器缓存、系统缓存、路由器缓存、IPS服务器缓存、跟域名服务器缓存、顶级服务器缓存。从哪个服务器缓存找到IP则直接返回,不在查询后面的缓存。
二、TCP连接
可以结合三次握手
三、发送HTTP请求
之后浏览器会发送HTTP请求,该请求发送给服务器
四、服务器处理请求并返回HTTP报文
五、浏览器解析渲染页面
六、连接结束
补充:其中第五步和第六步可以认为是同时发生的
面试官提问:说说常见的状态码
五中可能的取值
1XX : 指示信息 --- 请求已接收,继续处理
2XX :成功 -- 表示请求已经被成功接受、理解、接受
3XX :重定向 -- 要完成请求必须要更进一步操作
4XX :客户端错误 -- 请求有语法错误或请求无法实现
5XX :服务端错误 -- 服务器未能实现合法请求