在浏览器地址栏键入URL,按下回车之后经历的流程(面试题)
- 解析DNS。浏览器根据url查询对应的IP地址,分别查询浏览器缓存、系统缓存、路由器缓存、IPS服务器缓存、根域名服务器缓存、顶级域名服务缓存,查到即直接返回
- TCP连接。与服务器进行三次握手,建立tcp连接
- 发送HTTP请求。浏览器发送http请求给服务器
- 服务器处理请求并返回HTTP响应报文
- 浏览器解析渲染页面
- 连接结束。四次挥手,浏览器释放tcp连接
1、2步骤没有先后顺序,可同时发生
说说常见的HTTP状态码(面试题)
- 1XX:指示信息–表示请求已接收,继续处理
200 OK: 正常返回信息 - 2XX:成功–表示请求已被成功接收、理解、接受
- 3XX:重定向–要完成请求必须进行更进一步操作
- 4XX:客户端错误–请求语法错误或请求无法实现
400 Bad Request: 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized:请求未经授权,这个状态码必须和WWW-Authenicate报头域一起使用
403 Forbidden:服务器未收到请求,但是拒绝提供服务
404 Not Found:请求资源不存在,例如:输入了错误的URL - 5XX:服务器端错误–服务器未能实现合法的请求
500 Internal Server Error: 服务器发生不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
说说GET请求和POST请求的区别(面试题)
- Http报文层面:GET将请求信息放在URL,POST放在报文体中
- 数据库层面:GET符合幂等性和安全性,POST不符合
- 其他层面:GET可以被缓存,被存储,而POST不行
Cookie和Session的区别(面试题)
- Cookie数据存放在客户的浏览器上,Session数据放在服务器上
- Session相对于Cookie更安全
- 若考虑减轻服务器负担,应当使用Cookie
Cookie简介
-
是由服务器发给客户端的特殊信息,以文本的形式存放在客户端
-
客户端再次请求的时候,会把Cookie回发
-
服务器接收到后,会解析Cookie生成与客户端相对应的内容
Cookie的设置以及发送过程:
Session简介: -
服务器端的机制,在服务器上保存的信息
-
解析客户端请求并操作session id,按需保存状态信息
Session的实现方式
- 使用Cookie来实现Session
服务器给客户端分配一个唯一的JESSIONID, 客户端发送新的请求的时候, 在Cookie头中,带上JESSIONID,这样服务器就能找到对应的session
2.通过URL重写实现
通过cookie可以很好地实现session,但是如果客户端由于某些原因(比如出于安全考虑)而禁用cookie,在这种情况之下,为了使session能够继续生效,可以采用url重写。
超文本传输协议HTTP主要特点
- 支持客户/服务器模式
- 简单快速
- 灵活
- 无连接
- 无状态
请求/响应的步骤
- 客户端连接到Web服务器
- 发送HTTP请求
- 服务器接受请求并返回HTTP响应
- 释放连接TCP连接
- 客户端浏览器解析HTML内容