前端八股文知识点汇总——01.计算机网络和浏览器协议部分

目录

HTTP和HTTPS

HTTP定义

HTTP工作原理

请求/响应步骤

HTTP协议的特点

HTTPS定义

HTTPS协议的作用

客户端使用HTTPS协议与web服务器通信时步骤

HTTPS协议特点

两种协议的主要区别

TCP的三次握手和四次挥手

HTTP常见请求方法

服务器返回状态码的含义

HTTP报文

HTTP请求跨域的解决方案

解决方案


HTTP和HTTPS

HTTP定义

一种网络协议,是一个从客户端和服务端请求和应答的标准(TCP),用于WWW服务器传输超文本到本地浏览器的超文本传输协议;

HTTP工作原理

HTTP协议定义了web客户端如何从web服务器请求web页面,以及服务器如何把web页面传送给客户端。客户端向服务器发送一个请求报文,服务器以一个状态行作为响应。

请求/响应步骤

1、客户端连接到web服务器;

2、发送http请求;

3、服务器接受请求并返回http响应;

4、释放TCP连接;

5、客户端(浏览器)解析HTML内容

HTTP协议的特点

  • 不安全
  • 协议对客户端没有状态存储【没有状态】
  • 每次请求需要TCP三次握手四次挥手,和服务器重新建立连接【没有连接】
  • 基本的特性,由客户端发起请求,服务端响应
  • 简单快速、灵活
  • 使用明文、请求和响应不进行确认

HTTPS定义

以安全为目标的http通道,HTTP下加入SSL层加密。

HTTPS协议的作用

建立一个信息安全通道,来确保信息传输,确保网站真实性

客户端使用HTTPS协议与web服务器通信时步骤

1、客户端使用HTTPS url访问服务器,要求web服务器建立SSL链接;

2、web服务器收到客户端请求后,会将网站的证书(包含公钥),传输给客户端;

3、客户端和web服务器端开始协商SSL链接的安全等级(加密等级);

4、客户端浏览器通过双方协商一致的安全等级,建立会话密钥,然后通过网站的公钥加密会话密钥,并传送给网站;

5、web服务器通过自己的私钥解密出会话密钥;

6、web服务器通过会话密钥加密与客户端之间的通信

HTTPS协议特点

  • 安全,可防止数据在传输过程中被窃取、改变,确保数据完整性
  • HTTP安全版本,通过SSL或TLS提供加密处理数据、验证对方身份以及数据完整性保护
  • 采用混合加密技术,传输过程无法直接查看明文内容【传输加密】
  • 通过证书认证客户端访问的是自己的服务器【身份认证】
  • 传输过程防止被篡改【数据完整】
  • HTTPS握手阶段比较耗时,且缓存不如HTTP高效,会增加数据开销

两种协议的主要区别

1、HTTP是超文本传输协议,信息是明文传输;HTTPS是具有安全性的SSL加密传输协议

2、连接方式不同,端口也不同,HTTP协议端口80,HTTPS端口443

3、HTTP连接较简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,比HTTP协议安全。

推荐一篇博客:HTTP和HTTPS的区别详细介绍

TCP的三次握手和四次挥手

首先,TCP/IP模型是互联网的基础,是一系列网络协议的总称,这些协议可分为四层,分别是链路层、网络层、传输层和应用层。

三次握手: 建立TCP连接协议时,需要在客户端和服务器之间发送三个包,握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

四次挥手:终止TCP连接协议时,需要在客户端和服务器之间发送四个包。

HTTP常见请求方法

服务器返回状态码的含义

常见状态码英文名称中文含义
200OK服务器已将客户端请求的数据成功返回(请求成功)
204No Content请求处理成功,但没有任何资源可以返回给客户端
206Partial Content客户端进行范围请求,服务器成功执行GET请求
301Moved Permanently永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
302Found临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
303See Other查看其它地址。与301类似。使用GET和POST请求查看
304Not Modified未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
307Temporary Redirect临时重定向。与302类似。使用GET请求重定向
400Bad Request客户端请求的语法错误,服务器无法理解
401Unauthorized请求要求用户的身份认证
403Forbidden服务器理解请求客户端的请求,但是拒绝执行此请求
404Not Found服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置"您所请求的资源无法找到"的个性页面
500Internal Server Error服务器内部错误,无法完成请求
503Service Unavailable由于超载或系统维护,服务器暂时无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中

其中,

程序员最想看到的:200-OK。

程序员不想看到的:500-Internal-Server-Error。

用户不想看到的:401-Unauthorized、403-Forbidden、408-Request-Time-out。

HTTP报文

请求报文:请求行(request line)、请求头部(header)、空行和请求数据

请求行:HTTP方法、页面地址、HTTP协议、HTTP版本

响应报文:状态行、响应头、空行和响应正文

推荐看HTTP消息结构

HTTP请求跨域的解决方案

跨域,是指浏览器不能执行其他网站的脚本,是由浏览器的同源策略造成的,同源策略是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。

解决方案

1、jsonp:只支持GET请求

2、CORS通过设置一个响应头来告诉浏览器,该请求允许跨域,浏览器收到该响应以后就会对响应放行

3、Nginx 反向代理

4、Node 中间件代理

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值