TCP/IP协议之http与https通论

简介: TCP/IP协议之http与https通论TCP/IP是传输层协议, http是应用层协议。web使用http协议作应用层协议,封装http明文数据,然后使用tcp/ip做传输层协议将它通过网络传输。
TCP/IP协议之http与https通论


TCP/IP是传输层协议, http是应用层协议。web使用http协议作应用层协议,封装http明文数据,然后使用tcp/ip做传输层协议将它通过网络传输。http协议以明文方式传输内容,不提供数据加密。https,安全套接字层超文本传输协议。https在http的基础上加入ssl(secure sockets layer 安全套接层)协议,ssl依靠证书来验证服务器的身份,并为客户端(client)和服务器(server)之间的通信加密。https是http下加入ssl层,https的安全基础是ssl。http直接用tcp进行数据传输,而https经过一层ssl,用的端口不一样,http是80,https是443。
https协议服务器须有数字证书,可以是自己制作或者ca(certificate authority)证书。自己颁发的证书需要客户端验证通过,才可以继续访问,使用ca证书则不会弹提提示窗。这套证书是一对公钥和私钥。公钥给别人加密使用,私钥给自己解密使用。公钥含了很多公开信息,如证书颁发机构,过期时间等。
客户使用https的url访问服务器,要求与web服务器建立ssl连接。客户端收到服务端证书后首先会验证公钥是否有效,比如颁发机构,过期时间等,如果发现异常,则会弹出窗警告,提示证书存在问题。如果证书没有问题,那么就生成一个随即值,然后用证书对该随机值进行加密。
客户端发给服务器端加密后的随机值,让服务端得到这个随机值,随后客户端和服务器端的通信就以这个随机值来加密解密。服务器端用私钥解密后,得到客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。对称加密是将信息和私钥通过某种算法混合在一起,除非知道私钥,否则无法获取明文内容,而恰好客户端和服务器端都知晓此私钥,所以只要加密算法足够复杂和精巧,数据就够安全。此后,服务器端传输给客户端的信息,是服务器端用私钥加密后的信息,客户端可解密还原。
https协议的作用有二:
一,建立信息安全通道,来保证数据传输的安全;
二,确认服务器的合法性。服务器端从http切换到https需要把url链接由http改为https。作为兼容性考虑,一般服务器端支持http和http两种。https是现行架构下相对安全的解决方案,虽然不是绝对安全,但它大幅度增加了中间人攻击的成本。但是https协议握手阶段比较费时,https协议需要ca申请证书或自制证书,会使数据的加载时延变长。https缓存不如http高效,会增加额外开销和能耗。
http是明文传输,https报文组装成tcp报文时加密,https的header,以及body都被加密。https使用加密与hash算法:
对称加密算法:aes,rc4,3des。对称加密(encryption)与解密(decryption)用的是同样的密钥(secret key),对称加密优点是快、简单,效率高。
非对称加密算法:rsa,dsa/dss。非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。最常用的非对称加密算法是RSA算法。
hash算法:md5,sha1,sha256。
相关文章
|
XML JSON API
识别这些API接口定义(http,https,api,RPC,webservice,Restful api ,OpenAPI)
本内容介绍了API相关的术语分类,包括传输协议(HTTP/HTTPS)、接口风格(RESTful、WebService、RPC)及开放程度(API、OpenAPI),帮助理解各类API的特点与应用场景。
|
10月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
缓存 监控 搜索推荐
301重定向实现原理全面解析:从HTTP协议到SEO最佳实践
301重定向是HTTP协议中的永久重定向状态码,用于告知客户端请求的资源已永久移至新URL。它在SEO中具有重要作用,能传递页面权重、更新索引并提升用户体验。本文详解其工作原理、服务器配置方法(如Apache、Nginx)、对搜索引擎的影响及最佳实践,帮助实现网站平稳迁移与优化。
1436 68
|
12月前
|
Android开发 Kotlin
|
12月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
913 2
|
11月前
|
网络协议 安全 网络安全
什么是TCP/UDP/HTTP?它们如何影响你的内网穿透体验?
数据的传输离不开各种协议,它们就像现实世界中的交通规则,规定了数据如何打包、寻址、传输和接收。对于使用内网穿透的用户来说,理解TCP、UDP和HTTP这些基础协议的特点,能帮助你更好地理解其性能表现,并选择最适合的配置方案。
|
网络协议 API
区分TCP/IP、HTTP、Socket三者的差异
HTTP关注于应用层的协议规范,而Socket关注于为应用程序提供编程中的网络功能,这些功能本身是建立在底层的TCP/IP协议之上;HTTP是更高层次的抽象,定义了如何包装数据,而TCP/IP定义了如何传送数据,Socket则是两者之间在程序中的桥梁,负责实现细节。在实际应用中,通常HTTP通信也是通过Socket来完成,因为HTTP仅是具体内容的封装形式,而Socket则是传送方式的实现形式。
1128 16
|
12月前
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
1008 0
|
12月前
|
网络协议 安全 网络安全
什么是HTTP协议
HTTP协议是超文本传输协议,基于TCP,规定了客户端与服务器端通信规则,但数据以明文传输,安全性低。HTTPS则通过SSL加密保障数据安全。两者默认端口不同,HTTP为80,HTTPS为443。HTTPS安全性更高,但消耗更多服务器资源。
1096 0
|
存储 网络协议 安全
HTTP 协议及会话跟踪机制详解
本文详解了 HTTP 协议的核心知识,包括其定义(超文本传输协议,基于 TCP,规定客户端与服务器通信规则)及与 HTTPS 的区别(安全性、端口、资源消耗)。 介绍了 GET 与 POST 请求的差异(参数限制、安全性、应用场景),以及 Restful 风格(通过 URL 定位资源,请求方式决定操作)。列举了常见 HTTP 状态码(如 200 成功、404 资源未找到),对比了转发与重定向的区别(服务器端一次请求 vs 客户端两次请求)。 还阐述了会话跟踪机制:Cookie 基于客户端存储,通过Set-Cookie和Cookie头实现,安全性较低;Session 基于服务端存储,依赖 C
834 1