一. 简述浏览器输入 URL 地址后发生的事情
1 浏览器向dns服务器查找输入URL对应的IP地址
2 DNS服务器返回网站的IP地址
3 浏览器根据IP地址与目标web服务器在80端口建立TCP连接
4 浏览器获取请求页面的HTML代码
5 浏览器在显示窗口内渲染HTML
6 窗口关闭时,浏览器终止对服务器的连接
二.请介绍常见的 HTTP 状态码(至少五个)
状态码是由三位数字组成,第一个数组定义了相应的类别,分别有五种取值:
1xx 指示信息:表示请求已接收,继续处理。
100 客户必须继续发出请求
101 客户要求服务器根据请求转换HTTP协议版本
2xx 成功:表示请求已被成功接收、理解、接受。
200 (成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。(也就是通常所说的增删改查中的增)
202 (已接受) 服务器已接受请求,但尚未处理。
3xx 重定向:要完成请求必须进行更进一步的操作。(不常见)
300 (多种选择) 针对请求,服务器可执行多种操作。服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301 (永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
4xx 客户端错误:请求有语法错误或请求无法实现。
400 (错误请求) 服务器不理解请求的语法。
401 (未授权) 请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。
403 (禁止) 服务器拒绝请求。
404 (未找到)没有在服务器中找到该资源
5xx 服务器端错误:服务器未能实现合法的请求。
500 (服务器内部错误) 服务器遇到错误,无法完成请求。
501 (尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。
3. HTTP 和 HTTPS 的区别和相同点
https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
http 是超文本传输协议,信息是明文传输, https 则是具有安全性的ssl加密传输协议。
http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
4. 什么是跨域,如何解决跨域
什么是跨域
跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。
什么是同源策略?
同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到 XSS 、 CSFR 等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
同源策略限制了以下行为:
Cookie、localStorage和 IndexDB 无法读取
DOM 和 JS对象无法获取
Ajax请求发送不出去
常见跨域场景:
所谓的同源是指:域名、协议、端口均为相同。
http://www.a.cn/index.html 调用 http://www.a.cn/server.php 非跨域。
http://www.a.cn/index.html 调用 http://www.b.cn/server.php 跨域,主域不同。
http://abc.a.cn/index.html 调用 http://def.b.cn/server.php 跨域,子域名不同。
http://www.a.cn:8080/index.html 调用 http://www.a.cn/server.php 跨域,端口不同。
https://www.a.cn/index.html 调用 http://www.a.cn/server.php 跨域,协议不同。
localhost 调用 127.0.0.1 跨域。
解决跨域
jsonp 跨域
document.domain + iframe 跨域
window.name + iframe 跨域
location.hash + iframe 跨域
postMessage 跨域
跨域资源共享 CORS
withCredentials 属性
WebSocket 协议跨域
node 代理跨域
nginx 代理跨域
5. 请分别介绍 Cookie 和 Session 的作用及它们之间的区别
cookie介绍
Cookie是存储在用户本地计算机上,用于保存一些用户操作的历史信息,当用户再次访问我们的服务器的时候,浏览器通过HTTP协议,将他们本地的Cookie内容也发到咱们服务器上,从而完成验证。
cookie的特点:
Cookie 是存储在浏览器客户的一小片数据;
Cookie 可以同时被前台与后台操作;
Cookie 可以跨页面存取;
Cookie 是不可以跨服务器访问的;
Cookie 有限制;每个浏览器存储的个数不能超过300个,每个服务器不能超过20个,数据量不能超过4K;
Cookie 是有生命周期的,默认与浏览器相同,如果进程退出,cookie会被销毁
Session介绍
Session 存储在我们的服务器上,就是在我们的服务器上保存用户的操作信息。
当用户访问我们的网站时,我们的服务器会成一个 Session ID,然后把 Session ID 存储起来,再把这个 Session ID 发给 我们的用户,用户再次访问我们的服务器的时候,拿着这个 Session ID就 能验证了,当这个ID能与我们服务器上存储的ID 对应起来时,我们就可以认为是自己人。
session特点:
seesion 数据存储在服务器端;
每一个会话分配一个单独的 session_id;
该 session_id 通过 cookie 传送到前台,默认的 session_id 名称是PHPSESSIONID;
前台只能看到 Session 的 ID,而不能修改 Session 值;
使用 Session 之前需要先开启会话;
Session 存储在 Session 数组 $_SESSION ;
Session 存储方式比较安全,但是如果 Session 数量过多,会导致服务器性能下降;
cookie和session的区别:
来源网络,侵权联系删除
领取专属 10元无门槛券
私享最新 技术干货