首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

老程序员告诉你:你需要掌握关于HTTP的五个知识点

一. 简述浏览器输入 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的区别:

来源网络,侵权联系删除

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190704A05IHJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券