字节跳动面试题
- Http协议
- Http协议是一个应用层的协议,由请求和响应构成,使用统一资源标识符来传递数据和建立连接 。
- HTTP协议是无状态的,也就是说每一次HTTP请求之间都是相互独立的,没有联系的,服务端不知道客户端具体的状态。
- 一次HTTP请求的基本流程一般是,在建立TCP连接后,由客户端向服务端发起一次请求 request ,而服务器在接收到以后返回给客户端一个响应 response 。所以我们看到的HTTP请求内容一般就分为请求和响应两部分。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。默认HTTP的端口号为80。
- 每一个HTTP请求都由三部分组成,分别是:
- 请求行、请求行一般由请求方法、url路径、协议版本组成
- 请求报头、括普通报头、请求报头、响应报头、实体报头。每个报头的形式如下:
- host:请求资源的域名,主机号和端口号
- accept:可接收的数据格式
- cookie信息
- Accept-Encoding
- 请求正文。请求正文通常是使用POST方法进行发送的数据
- HTTP响应同样也是由三部分组成
- 状态行、由HTTP协议版本号, 状态码, 状态消息三部分组成
- 响应报头、
- allow:服务器支持哪些方法
- date
- set_cookie
- 报文主体。
- cookie session介绍一下
- 存储的位置,利弊
- 安全性
- 现在的搭配使用:session依赖于cookie使用:
- 通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。
- 将session数据加密,然后存储在cookie中
- session表结构怎么设计,储存在哪里
- 多个服务器下的session一致性:支持通过配置文件修改session的存储介质为sql server的,所有机器的会话数据都从同一个数据库读,就不会存在不一致的问题;
- sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。session在访问tomcat服务器HttpServletRequest的getSession(true)的时候创建,tomcat的ManagerBase类提供创建sessionid的方法:随机数+时间+jvmid。存储在服务器的内存中,tomcat的StandardManager类将session存储在内存中,也可以持久化到file,数据库,memcache,redis等。客户端只保存sessionid到cookie中,而不会保存session,session销毁只能通过invalidate或超时,关掉浏览器并不会关闭session。
- 你们的session cookie在项目里运用到哪里
- 用户的直接登陆。
- 算法题目:[删除链表中重复的节点]在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留,返回链表头指针.例如,链表1-2-3-3-4-4-5处理后为1-2-5
- TCP/UDP的区别介绍一
- TCP如何保证传输的有效性。
- innodb和myisam的区别
- 乐观锁悲观锁区别说一下
- 数据库四种隔离状态 分别有什么问题
- redis的数据结构
- sortset底层,原理,怎么保证有序
- 操作系统的虚拟内存
- 进程的三种状态:
- 进程调度的方式
- 进程间的通讯方式:
- 线程间的同步方式:
- 进程和线程的区别
- 常见的排序算法
以上是我直接从笔记中复制了部分,格式上有很多乱码。最近有点缺积分,请从下面连接下载文件,有我整理的视频面试的原题和答案
文件连接https://download.csdn.net/download/horse7/11832344