应用层HTTP、安全层TLS与网络底层协议介绍
应用层HTTP、安全层TLS与网络底层协议介绍文章目录一、应用层1.请求行1.1直接访问源站时1.2代理时1.2.1URL编码1.2.1.1原因1.2.1.2方式编码位置2.请求头header2.1Host2.2Content-Type2.2.1JSON2.3Content-Length2.4User-Agent2.5Refer2.6Cookie2.6.1受控的JS2.6.2站点2.6.2.1Cookie数据2.6.2.1.1格式2.6.2.1.2内容2.6.2.1.3创建2.6.2.1.4位置2.6.2.1.5过期2.6.3登录3.空行4.请求体body位置数据消息边界1.应用层2.传输层二、安全层1.传输加密三、传输层网络层1.目的IP目的端口2.IP管多端口四、链路层一、应用层规定 请求/响应消息 长什么样协议HTTPHTTP请求 请求行 请求头 请求体1.请求行1.1直接访问源站时methoud/path ?queryscheme/version请求行使用pathquery告诉服务器询问内部资源的参数1.2代理时methoudURLscheme/version↓scheme: //目的ip :目的port /path ?query请求行使用完整URL告诉服务器外出要去的目标ip端口进行打通隧道 建立新连接要访问外面服务器的内部资源参数1.2.1URL编码URL编码处理字符串 怎样合法地放进URL里1.2.1.1原因1URL语法里本来就有意义的保留字符 想作为普通数据内容出现时保留字符: / # [ ] ’ ( ) /* , ; ?路径和query的分隔符query参数之间的分隔符query中 键和值的分隔符/路径分段符#fragment开始符:scheme:与host:port中 有特殊意义2URL的标准字符集外的 不合法或不安全的字符 不允许直接原样出现在URL中空格非ASCII字符(中文)换行制表符控制字符特殊符号1.2.1.2方式百分号编码按UTF-8字符编码 把字符对应数字数字用十六进制表示在数字的每个字节前加%编码位置位置部分方式URLpath、query、fragment百分号编码HTML文本、属性值实体转义JOSNbody反斜杠转义2.请求头header2.1HostHost: host(目的IP:目的端口)请求到达目标服务器的目标通信端点 往上的应用程序后解密应用层的HTTP请求里的Host区分在服务器内部要去的 目标IP端口的站点2.2Content-TypeContent-Type: application/json表示请求的请求体body里的数据格式提示接收方如何解析body中的数据HTML页面内容text/html浏览器解析其中的标签 转换成界面显示CSS样式文件内容text/css浏览器解析其中的选择器和属性 应用到页面的样式上JS脚本文件内容application/javascript浏览器通过JS引擎 执行js中的逻辑JSON数据application/json浏览器不做处理图片image.png 或 image.jpg浏览器按照图片的二进制格式 解析并显示2.2.1JSONJSON(JavaScript Object Notation)是一种文本格式的数据表示方法能表示数据类型对象object数组array字符串string数字number布尔值true/falsenull用来在不同程序之间 交换结构化数据前后端传数据接口返回结果配置文件持久化结构化信息2.3Content-LengthContent-Length: 352.4User-Agent用户使用设备的浏览器和操作系统信息2.5Refer当前页面的跳转来源页的URL2.6Cookie2.6.1受控的JS浏览器里的JS在安全沙箱下受控地访问本地硬盘读取 用户手动选择的文件下载文件存储数据到 浏览器本地代存的站点2.6.2站点浏览器提供站点 代存数据在本地2.6.2.1Cookie数据Cookie是浏览器代网站 保存在本地站点的键值对数据响应里发来保存并在后续请求中自动带回去2.6.2.1.1格式Cookie的格式 由浏览器遵守标准 规定的2.6.2.1.2内容Cookie的内容 是网站自定义的2.6.2.1.3创建服务器在响应头通过Set-Cookie设置前端JS通过document.cookie设置2.6.2.1.4位置传输时 Cookie在消息的header里存储时 Cookie在浏览器本地的站点里2.6.2.1.5过期服务器指定Cookie的过期时间到后浏览器会把它视为过期删除或不再发送2.6.3登录Cookie/Session 规定登录状态 怎么保存和识别客户端1.用户提交用户名和密码服务器2.验证通过3.创建一个session会话4.生成一个随机的sessionId5.把sessionId-session保存在服务器端6.把sessionId 通过Set-Cookie发给浏览器7.浏览器站点代存Cookie后续请求自动带回sessionId8.服务器查询sessionId 使用对应存储的session数据3.空行表示头结束4.请求体body{“username” : “alice” , “password” : “123”}位置数据请求行、请求头字符文本请求体字符文本、二进制字节流再往下TCP、IP头协议字段HTML/CSS/JS/JSON/图片 是内容格式作为主要载荷时 通常放在请求体body里也可作为普通字符串出现在别处query里可放JSON字符串header里可放文本片段HTML响应body里可嵌CSS、JS消息边界1.应用层应用层HTTP协议有规定消息边界HTTP消息header的结束边界是一个空行HTTP消息的body 用Content-Length判断结束2.传输层传输层TCP是字节流 没有规定消息边界一个HTTP请求可以被拆解到多个TCP包发送多个HTTP请求可以被合并到较少的TCP包里发送二、安全层规定HTTP消息 怎样加密传输协议TLS/SSL把HTTP消息整体加密1.传输加密数据在一条TLS连接的两端之间路线上传输时 受保护加密到达连接终止的端点上后就能解密看到HTTP明文代理时浏览器信任抓包代理安装的根证书主动授权代理工具成可信TLS端点浏览器和代理建立TLS连接往这段加密传输HTTP消息消息到达代理TLS端点后 能解密HTTP明文中间代理再建立TLS连接把消息往剩段重新加密发给真正服务器三、传输层网络层规定数据包 怎么从这台机器送到那台机器传输层网络层协议TCP/UDPIP通信标识源端口、目的端口源IP、目的IP1.目的IP目的端口网络层IP头的目的IP和传输层TCP/UDP头的目的端口在互联网里找路 把包送到目标服务器的目标通信端点2.IP管多端口一台服务器一个IP里 可以托管很多网站的端口四、链路层协议以太网/Wi-Fi通信标识这一跳的MAC地址《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取og.csdnimg.cn/direct/5458f21c6efa4e739621ffb5d4309b20.jpeg#pic_center)面试真题/经验以上资料如何领取