1.在浏览器中输入URL到整个页面显示在用户面前时这个过程中到底发生了什么?
DNS解析。实现了网址到IP地址的转换。
TCP连接。HTTP协议是使用TCP作为其传输层协议的
发送HTTP请求。它主要发生在客户端。发送HTTP请求的过程就是构建HTTP请求报文并通过TCP协议中发送到服务器指定端口。
服务器处理请求并返回HTTP报文。后端工程师眼中的HTTP,它会对TCP连接进行处理,对HTTP协议进行解析。HTTP响应报文也是由三部分组成: 状态码, 响应报头和响应报文。
浏览器解析渲染页面。浏览器是一个边解析边渲染的过程。首先浏览器解析HTML文件构建DOM树,然后解析CSS文件构建渲染树,等到渲染树构建完成后,浏览器开始布局渲染树并将其绘制到屏幕上。
连接结束。
2.状态码
状态码是由3位数组成,第一个数字定义了响应的类别,且有五种可能取值:
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。平时遇到比较常见的状态码有:200, 204, 301, 302, 304, 400, 401, 403, 404, 422, 500(分别表示什么请自行查找)。
3.POST和GET请求方式的区别?
GET在浏览器回退时是无害的,而POST会再次提交请求。- GET产生的URL地址可以被Bookmark,而POST不可以。
- GET请求会被浏览器主动cache,而POST不会,除非手动设置。
- GET请求只能进行url编码,而POST支持多种编码方式。
- GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
- GET请求在URL中传送的参数是有长度限制的,而POST没有。
- 对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
- GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
- GET参数通过URL传递,POST放在Request body中。
4.Host
接受请求的服务器地址,可以是IP:端口号,也可以是域名
5.TCP与UDP的区别:
用户数据报协议:UDP:面向无连接,数据量小,实时性高,可靠性差,UDP支持一对一,一对多,多对一和多对多的交互通信
传输控制协议:TCP: 面向连接, 数据量大, 实时性低, 可靠性高, 只能是点到点的
6.Http 和Https的区别
第一:http是超文本传输协议,信息是明文传输,https是具有安全性的ssl加密传输协议
第二:http和https使用的是完全不同的连接方式,端口也不一样,前者80 或者443
第三:http连接很简单,是无状态的。https协议是由ssl+http协议构建的可进行加密传输,身份认证的网络协议。