面试必备
- [http 请求报文响应报文的格式](#http 请求报文响应报文的格式)
- [Token cookie session 区别](#Token cookie session 区别)
http 请求报文响应报文的格式
HTTP 请求报文和响应报文的格式如下:
HTTP 请求报文格式:
<方法> <路径> <协议版本>
<请求头部字段1>: <值1>
<请求头部字段2>: <值2>
...
<空行>
<请求体>
-
<方法>
: 请求方法,例如 GET、POST、PUT、DELETE 等。 -
<路径>
: 请求的路径,表示需要访问的资源。 -
<协议版本>
: 使用的协议版本,通常是 HTTP/1.1 或 HTTP/2。
请求头部字段:包含了关于请求的附加信息,每个字段由字段名和对应的值组成,用冒号分隔。
空行:请求头部和请求体之间需要用一个空行分隔。
请求体:POST 或 PUT 请求中包含的数据,通常用于传输表单数据、JSON 数据等。
HTTP 响应报文格式:<协议版本> <状态码> <状态码描述>
<响应头部字段1>: <值1>
<响应头部字段2>: <值2>
...
<空行>
<响应体> -
<协议版本>
: 使用的协议版本,通常是 HTTP/1.1 或 HTTP/2。 -
<状态码>
: 表示服务器对请求的处理结果的状态码,例如 200 表示成功,404 表示资源未找到等。 -
<状态码描述>
: 对状态码的简要描述。
响应头部字段:包含了关于响应的附加信息,每个字段由字段名和对应的值组成,用冒号分隔。
空行:响应头部和响应体之间需要用一个空行分隔。
响应体:服务器返回的数据,可以是 HTML、JSON、文件等。
需要注意的是,请求报文和响应报文都是纯文本,通过服务器和浏览器之间的传输实现数据的交互。报文的具体内容根据不同的请求和响应类型而有所不同。
Token cookie session 区别
Token、Cookie和Session是常见的身份验证和会话管理机制,它们之间有以下区别:
Token(令牌):
- Token是一种无状态的身份验证机制,用于验证用户的身份。
- 在用户进行身份验证后,服务器会生成一个Token并将其发送给客户端(通常是通过HTTP响应的方式)。
- 客户端收到Token后,将其存储在本地(通常是在客户端的存储器中,如浏览器的localStorage或移动应用程序的本地存储)。
- 客户端每次向服务器发送请求时,都需要将Token作为请求的一部分发送给服务器(通常是通过HTTP请求头的Authorization字段)。
- 服务器接收到请求后,通过验证Token的有效性来确定用户的身份。
- Token可以包含加密的信息,如用户ID、权限等。
Cookie(HTTP Cookie): - Cookie是一种在客户端保存状态信息的机制。
- 在用户进行身份验证后,服务器会在响应中设置一个Cookie,将其发送给客户端。
- 客户端收到Cookie后,将其存储在本地(通常是在浏览器中)。
- 客户端每次向服务器发送请求时,都会自动将Cookie作为请求的一部分发送给服务器。
- 服务器接收到请求后,通过解析Cookie的内容来获取相关的状态信息。
- Cookie通常用于保持用户的登录状态、跟踪用户的会话等。
Session(会话): - Session是一种在服务器端保存状态信息的机制。
- 在用户进行身份验证后,服务器会为该用户创建一个Session,并将Session ID发送给客户端(通常是通过Cookie)。
- 客户端收到Session ID后,将其存储在本地(通常是在Cookie中)。
- 客户端每次向服务器发送请求时,都会自动将Session ID作为请求的一部分发送给服务器(通常是通过Cookie)。
- 服务器接收到请求后,通过Session ID找到对应的Session,并获取相关的状态信息。
- 服务器会在服务器端保存Session的内容,通常存储在内存或数据库中。
- Session通常用于跟踪用户的会话、存储用户的身份验证信息等。
总结来说,Token是一种无状态的身份验证机制,Cookie是一种在客户端保存状态信息的机制,而Session是一种在服务器端保存状态信息的机制。它们在实现上有所不同,适用于不同的场景和需求。