面试必备——HTTP协议

3 篇文章 1 订阅

目录

HTTP协议

什么是HTTP协议?

HTTP协议的特点

HTTP的长连接和短连接

HTTP/1.0 与 HTTP/1.1的区别

HTTP协议格式

HTTP头信息

HTTP请求方法

GET和POST的区别:

Http状态码

常见的HTTP工具

Http中重定向和请求转发的区别

怎么解决HTTP协议无状态?

HTTP和HTTPS的区别

HTTPS工作原理


HTTP协议

什么是HTTP协议?

HTTP协议是客户端和服务器进行交互的一种通讯的格式。实际上就是客户端发送请求,服务端进行响应。

网络传输都需要使用同样的协议,双方约定好统一的规范(封装和解析的数据格式规范)。

协议:就是双方约定好的数据格式,让双方都能看懂。

HTTP协议的特点

  • http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  • 灵活:HTTP允许传输翰任意类型的数据对象,正在传的类型由Content-Type加以标记
  •  无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,,即断开连接,,采用这种方式可以节省传输时间。
  • 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致毎次连接传送的数据量增大。另一方面在服务器不需要先前信息时它的应答就较快。

HTTP的长连接和短连接

HTTP1.1 默认保持长连接(HTTP persistent connection),数据传输完成了保持 TCP 连接不断开(不发 RST 包、不四次握手),等待在同域名下继续用这个通道传输数据;相反的就是短连接。

在 HTTP/1.0 中,默认使用的是短连接。也就是说,浏览器和服务器每进行一次 HTTP 操作,就建立一次连接,任务结束就中断连接。

从 HTTP/1.1 起,默认使用的是长连接, 用以保持连接特性。

HTTP/1.0 与 HTTP/1.1的区别

HTTP协议有HTTP/1.0版本和HTTP/1.1版本。

HTTP/1.0默认是短连接,每次与服务器交互,都需要新开一个连接。

HTTP/1.1

  • 默认持久连接。只要客户端服务端任意一端没有明确提出断开TCP连接,就一直保持连接,可以发送多次HTTP请求。
  • 断点续传。利用HTTP消息头使用分块传输编码,将实体主体分块传输。

HTTP协议格式

HTTP头信息

Content-type:数据类型(text/html等)消息体的格式,告诉对方该使用什么方式解析

Content-Length :Body(消息体)的长度;

Host:客户端告知服务器,所要请求的资源在哪个主机的哪个端口上;

User-Agent:声明用户的浏览器的版本信息;

referer:当前页面是从哪个页面跳转过来的;(防盗链)

location:搭配3XX状态码使用,告诉客户端接下来要去哪里访问;

Cookie:在客户端存储少量信息,通常用于实现会话(session)的功能;

HTTP请求方法

http 1.0,三种:post,get,head

http 1.1,八种:post,get,head,options,put,delete,trace,connect

在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。

  • GET - 从指定的资源请求数据。

  • POST - 向指定的资源提交要被处理的数据

GET和POST的区别:

参考文章:浅析http中get和post的区别

  1. get的请求数据只能放在URL中,post的数据可以放在URL和请求体中

  2. URL长度有限制,所以get方法请求数据不能太多,URL只能传输ASCII字符,请求体不做限制

  3. 从安全性来讲:post可以存放请求数据在请求体中,相对来说更安全(不容易查看);

Http状态码

经常使用的状态码总结:

常见的HTTP工具

抓包工具:fidder,charles,以及浏览器自带的开发者工具

HTTP请求模拟的工具:postman

Http中重定向和请求转发的区别

本质区别:转发是服务器的行为,重定向是客户端行为

重定向的特点:两次请求,浏览器地址发生变化,可以访问自己web之外的资源,传输的数据会丢失

转发的特点:一次请求,浏览器地址不变,访问的是自己本身的web资源,传输的数据不会丢失。

怎么解决HTTP协议无状态?

无状态协议:

无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息。

也就是说,当客户端一次HTTP请求完成以后,客户端再发送一次HTTP请求,HTTP并不知道当前客户端是一个“老用户”。

解决方法:

可以使用Cookie来解决无状态的问题,Cookie就相当于一个通行证,第一次访问的时候给客户端发送一个Cookie,当客户端再次来的时候,拿着Cookie(通行证),那么服务器就知道这个是“老用户”。

HTTP和HTTPS的区别

  1. HTTP的URL是以http://开头,而HTTPS的URL是以https:// 开头的;
  2. HTTP是不安全的,而HTTPS是安全的;
  3. HTTP的标准端口是80, 而HTTPS的标准端口是443;
  4. 在OSI网络模型中,HTTP是工作在应用层的,而HTTPS的安全传输机制工作在传输层;
  5. HTTP无法加密,而HTTPS对传输的数据进行加密
  6. HTTP无需证书,而HTTPS需要CA机构的颁发的SSL证书。

HTTPS工作原理

  • 首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验;

  • 客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数使用公钥进行加密(RSA加密);

  • 消息体产生的后,对它的摘要进行MD5(或者SHA1)算法加密,此时就得到了RSA签名;

  • 发送给服务端,此时只有服务端(RSA私钥)能解密。

  • 解密得到的随机数,再用AES加密,作为密钥(此时的密钥只有客户端和服务端知道)。

图片

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值