秋招被问到http协议,我除了说是个通信协议了就啥都不知道了,其实也就这么点东西。好好记。
HTTP协议是超文本传输协议,用于从万维网服务器传输超文本到浏览器的传输协议。
它是基于TCP/IP通信协议来传递数据的。
HTTP协议工作于C/S(客户端/服务器)架构上。
属于应用层,面向对象的协议。
特点:
-
简单快速
-
灵活
-
无连接(每次只处理一个请求)
-
无状态(不保存传输的信息,HTTP1.1版本后引入Cookie技术)
-
支持B/S、C/S架构
URL
http协议使用统一资源定标识符(Uniform Resources Identifiers:URI)来传输数据和建立连接。
URL是一种特殊的URI,全称为统一资源定位符(Uniform Resources Locader)。它包含了用于查找某个资源所需要的所有信息。用于在互联网上确认某一处的资源
组成:
协议部分
://域名部分
:端口部门
/虚拟目录部分
/文件名部分
?参数部门``锚部分
eg:http://localhost:8080/admin/index.html?a=1#name
请求消息Request
格式:
响应消息Response
HTTP状态码
1XX:消息(没看到过哈哈哈)
2XX:成功
3XX:重定向(再来一道面试题:你知道301和302的区别吗?都是重定向哦,答案在最后)
4XX:客户端错误(检查路径,参数等)
5XX:服务端错误(打开命令窗口查看错误)
HTTP工作原理
-
客户端连接到Web服务器(先会通过DNS解析 域名找到服务端的ip地址咯,绕后通过TCP三次握手建立连接,这个我写过)
-
发送http请求
-
服务端接受请求并返回http响应
-
释放TCP连接
-
客户端浏览器解析响应正文展示到浏览器窗口