一、什么是http?
-----HTTP(超文本传输协议):一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展的语义和自描 述消息格式,与基于网络的超文本信息系统灵活的互动
二、HTTP 协议解决了什么问题?
----- 解决的是人与机器之间高效的信息交互
三、HTTP 是无状态的 (无连接和无状态是统一说法)
优缺点:缺点是如果需要之前的数据必须重新传,比较麻烦。但是如果不需要数据则正好,应答较快。这里有一点要注意:HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能改变这个结果。所以我们所谓的长连接只不过不用每次新建连接,但是每一次的请求还是独立的。
四、TCP/IP 协议
----- TCP/IP 协议(传输控制协议/互联网协议)不是简单的一个协议,而是一组特别的协议,包括:TCP,IP,UDP,ARP等,这些被称为子协议。在这些协议中,最重要、最著名的就是TCP和IP。因此,大部分网络管理员称整个协议族为“TCP/IP”。
五、HTTP 和 HTTPS 有什么区别?
----- HTTPS 它把 HTTP 下层的传输协议由 TCP/IP 换成了 SSL/TLS,由 「“HTTP over TCP/IP”」 变成了 「“HTTP over SSL/TLS”」,让 HTTP 运行在了安全的 SSL/TLS 协议上,收发报文不再使用 「Socket API」,而是调用专门的「安全接口」。
区别:(1)HTTP 是明文传输,所以不安全,容易被黑客窃听或篡改(通信安全必须同时具备机密性、完整性、身份认证和不可否认这四个特性;)
(2) HTTPS 的语法、语义仍然是 HTTP,但把下层的协议由 TCP/IP 换成了 SSL/TLS;
SSL/TLS 是信息安全领域中的权威标准,采用多种先进的加密技术保证通信安全;
OpenSSL 是著名的开源密码学工具包,是 SSL/TLS 加密算法的具体实现(NodeJs 实现
https 安全层面也是使用的 OpenSSL,实现 http 使用的 http-parser);
六、http 请求
HTTP 请求由状态行、请求头、请求正文三部分组成:
1、状态行:包括请求方式Method(一般有GET、POST、PUT、DELETE等)、资源路径URL、协议版本Version;
2、请求头:包括一些访问的域名、用户代理、Cookie 等信息;
3、请求正文:就是HTTP请求的数据
【一般使用最多的是get 和 post 请求】
1)请求方式:get与post请求(通过form表单经常用到)
2)GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限GET提交的数据会放在URL之后,也就是请求行里面,以?分割URL和传输数据,参数之间以&相连。
3)GET 与 POST 请求在服务器端获取请求数据方式不同,就是我们自己在服务端请求数据的时候的方式不同了。
4)Post的安全性要比Get 的安全性高
比如:通过GET 提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存;(2)其他人查看浏览器的历史记录,那么别人就可以拿到你的账号和密码了。
七、HTTP 状态码
1)200 – 请求成功
2)301 – 资源被永久转移到其他URL
3)404 - 请求的资源不存在(当客户端请求的URL 不对应于任何资源时)
4)500 - 内部服务器错误
HTTP 协议
最新推荐文章于 2024-12-11 16:46:44 发布