深圳建设行业网站,软装潢.企业网站建设,重庆市最新新闻,网站公司做的网站点击率怎么查网络编程知识
一.网络七层模型
OSI模型#xff1a; OSI 模型(Open System Interconnection model)是一个由国际标准化组织#x10fc01;提出的概念模型#xff0c;试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层…网络编程知识
一.网络七层模型
OSI模型 OSI 模型(Open System Interconnection model)是一个由国际标准化组织提出的概念模型试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。它将计算机网络体系结构划分为七层每层都可以提供抽象良好的接口。了解 OSI 模型有助于理解实际上互联网络的工业标准—— TCP / IP 协议族。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-No810uUq-1690518028857)(C:\Users\xie19\Pictures\Camera Roll\屏幕截图 2023-07-13 121801.png)]
由上至下对七个层的应用做简单的介绍
应用层规定数据的传输协议常见的应用层协议
协议端口说明HTTP80超文本传输协议HTTPS443HTTPSSL,HTTP的安全版FTP2021990文本传输协议telnet23远程终端协议
表示层应用层数据编码和转化,以确保以一个系统应用层发送的信息 可以被另一个系统应用层识别;EG: 解决不同系统之间的通信,比如Linux下的QQ和Windows下的QQ可以通信
会话层
建立一个连接自动的手机信息、自动的网络寻址传输层
每一个应用程序都会在网卡注册一个端口号该层就是端口与端口的通信常用的TCPIP协议网络层
此处需要确定计算机的位置怎么确定IPv4IPv6网络链路层
规定了0和1的分包形式确定了网络数据包的形式物理层
物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输下面的图表显示了常见的不同的TCP/IP和其他的协议在最初OSI模型中的位置
协议位置HTTP、FTP、 telnet、 SIP、 SSH应用层NCP、AFP表示层SSH、BSD socket会话层TCP、UDP传输层IP网络层以太网数据链路层光纤、无线电物理层
由于OSI是一个理想的模型因此一般网络系统只涉及其中的几层很少有系统能够具有所有的7层并完全遵循它的规定。
二、三次握手
1.第一次握手
客户端发送 SYN 包 syn j 到服务器并进入 SYN_SEND 状态等待服务器确认。
j 是一个随机数通过看服务器返回的 j 1 是否正确判断第一次握手服务器是否正确响应2.第二次握手
服务器确认客户的 SYN 包同时发送 ACK 包 ack j 1 作为回应
自己也发送一个 SYN 包 syn k 共两个包此时服务器进入 **SYN_RECV**** 状态
k 也是一个随机数也是用于看客户端返回的 k1 是否正确判断第二次握手客户端是否正确响应。3.第三次握手
客户端收到服务器的 SYNACK 包向服务器发送确认包 ACK ( ack k 1 )此包发送完毕客户端和服务器进入 ESTABLISHED 状态完成三次握手。
握手过程中传送的包里不包含数据三次握手完毕后客户端与服务器才正式开始传送数据。理想状态下TCP连接一旦建立在通信双方中的任何一方主动关闭连接之前TCP 连接都将被一直保持下去。三、sockethttp,TCP
有一篇博文写的很好
http://t.csdn.cn/N50wA
四、http协议
1.http协议得特性
http协议是建立在TCP/IP协议之上应用层协议默认端口为80或者8080
http协议的的特点是无状态短连接
2.http协议得请求
利用抓包工具httpwatch可以获取报文多见于前端后端用于分析数据传输过程中产生的问题 http协议的报文传输的是ASCII码在TCP/IP协议之上主要主要分为三部分
请求行 浏览器向服务器发送的在第一行包含.请求方式GET请求、POST请求.url网址.http协议版本GET请求
例如
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p8HwCbBK-1690518028859)(C:\Users\xie19\Pictures\Camera Roll\18902323239.png)]
请求方式是GET请求url 携带的参数可见http协议版本是1.1
POST请求
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x0qXbmnj-1690518028859)(C:\Users\xie19\Pictures\Camera Roll\555555.png)]
请求方式为POST请求url携带的参数不可见协议版本是1.1
3.POST与GET的区别
1.本质区别
GET产生一个TCP数据包POST产生两个TCP数据包。
对于GET方式的请求浏览器会把 http header 和 data 一并发送出去服务器响应200返回数据
对于POST浏览器先发送header服务器响应100 continue浏览器再发送 data服务器响应200 ok返回数据。200一般以2开头的为成功以4开头是失败2.具体区别
2.1.url的参数是否可见
get请求url携带的参数可见
var url http://192.168.1.40:8080/v1/sea?page1per_page10 search escape(str)post请求url 携带的参数不可见参数被隐藏可以通过抓包
2.2参数传递方式
get通过请求行拼接url进行传递参数
post通过请求主体传输参数
3.缓存性
get 请求是可以缓存的
post 请求不可以缓存
4.页面后退的反应
get 请求页面后退时不产生影响因为有缓存
post 请求页面后退时会重新提交请求没有缓存
5.传输数据的大小
get 一般传输数据大小不超过2k-4k根据浏览器不同限制不一样但相差不大
post 请求传输数据的大小根据 php.ini 配置文件设定也可以无限大
6.安全性
这个也是最不好分析的原则上 post 肯定要比 get 安全毕竟传输参数时 url 不可见但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的对传递的参数进行加密其实都一样。
7.请求头
浏览器向服务器发送一些状态数据标识数据等等
一个信息一行包括信息名信息值按行分隔。
User-Agent: firefox//表示发送请求的浏览器请求代理端是firefox
Host: shop.100.com//表示请求的主机域名基于域名的虚拟主机就是靠这个头判断的
Cookie:nameitcast//浏览器携带的cookie数据。
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive注意请求头信息需要使用一个空行结束
8.请求主体
请求代理端向服务器端发送的请求数据
典型的就是POST形式发送的表单数据
get请求没有请求主体部分get数据是在请求行中的url上进行传递的
4.http协议的响应
HTTP/1.1 200 ok
Date: Tue19 Nov 2013 03:08:55 GMT
Server: Apache/2. 2.22 (Win32) PHP/5.3. 13
X- -Powered -By: PHP/5. 3.13
Content-Length: 16
Content- Type: text/html响应行
响应行包括协议版本、状态码、状态消息。典型的
(以1开头)1xx:消息
(以2开头)2xx:成功
(以3开头)3xx:请求被重定向
(以4开头)4xx:浏览器端错误
(以5开头)5xx:服务器端错误响应头
Date响应的时间。GMT时间
Content-Length 响应主体数据的长度
Content-Type: text/html 内容类型:告知浏览器接下来发送的响应主体数据是什么格式响应主体
主要的响应数据在浏览器的主体区域显示的数据都是相应主体前端人员通过html和css技术实现的排版对于C语言来说拿到的就是一段ASCII码、一段字符串注意每行包括响应行和响应头都需要一个 r\n 结尾
五、HTTPS协议
1.简介与原理
http协议是明文传输的因此很容易被截取和解析泄漏个人数据。https协议是在 http 和 tcp 之间多添加了一层加密SSL进行身份验证和数据加密。
2、密码学基础
明文与密文
明文 明文指的是未被加密过的原始数据。 密文 明文被某种加密算法加密之后会变成密文从而确保原始数据的安全。密文也可以被解密得到原始的明文。
密钥
密钥密钥是一种参数它是在明文转换为密文或将密文转换为明文的算法中输入的参数。
密钥分为对称密钥与非对称密钥分别应用在对称加密和非对称加密上。
对称加密(私钥私钥)
*对称加密*对称加密又叫做私钥加密即信息的发送方和接收方使用****同一个密钥****去加密和解密数据。
对称加密的特点是算法公开、加密和解密速度快适合于对大数据量进行加密常见的对称加密算法有****DES*、3DES、TDEA、Blowfish、*RC5****和IDEA。
其加密过程如下明文 加密算法 私钥 密文
解密过程如下 密文 解密算法 私钥 明文对称加密中用到的密钥叫做私钥私钥表示个人私有的密钥即该密钥不能被泄露。 其加密过程中的私钥与解密过程中用到的私钥是同一个密钥这也是称加密之所以称之为“对称”的原因。由于对称加密的算法是公开的所以一旦私钥被泄露那么密文就很容易被破解所以对称加密的缺点是密钥安全管理困难。
非对称加密(公钥私钥)
*非对称加密*非对称加密也叫做公钥加密。
非对称加密使用一对密钥即公钥和私钥且二者成对出现。私钥被自己保存不能对外泄露。公钥指的是公共的密钥任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密用另一个进行解密。
1被公钥加密过的密文只能被私钥解密过程如下
明文 加密算法 公钥 密文 密文 解密算法 私钥 明文
2被私钥加密过的密文只能被公钥解密过程如下
明文 加密算法 私钥 密文 密文 解密算法 公钥 明文由于加密和解密使用了两个不同的密钥这就是非对称加密“非对称”的原因。
非对称加密的缺点是加密和解密花费时间长、速度慢只适合对少量数据进行加密。
在非对称加密中使用的主要算法有*RSA*、Elgamal、Rabin、D-H、ECC椭圆曲线加密算法等。
这些算法不用亲自去写已经成为一种标准有现成的库去调用实现即可。
六.HTTPS相对于HTTP优缺点
优点正确率更高安全性更强 使用 HTTPS 协议可认证用户和服务器确保数据发送到正确的客户机和服务器
HTTPS 协议是由 SSL HTTP 协议构建的可进行加密传输、身份认证的网络协议要比 HTTP 协议安全可防止数据在传输过程中不被窃取、改变确保数据的完整性 。
HTTPS 是现行架构下最安全的解决方案虽然不是绝对安全但它大幅增加了中间人攻击的成本 。
缺点效率低成本高 相同网络环境下HTTPS 协议会使页面的加载时间延长近 50%增加 10%到 20%的耗电。
HTTPS 协议还会影响缓存增加数据开销和功耗 。
HTTPS 协议的安全是有范围 中间人攻击 伪造证书
http安全系数不高但是效率高成本低
HTTPS 协议可认证用户和服务器确保数据发送到正确的客户机和服务器
HTTPS 协议是由 SSL HTTP 协议构建的可进行加密传输、身份认证的网络协议要比 HTTP 协议安全可防止数据在传输过程中不被窃取、改变确保数据的完整性 。
HTTPS 是现行架构下最安全的解决方案虽然不是绝对安全但它大幅增加了中间人攻击的成本 。
缺点效率低成本高 相同网络环境下HTTPS 协议会使页面的加载时间延长近 50%增加 10%到 20%的耗电。
HTTPS 协议还会影响缓存增加数据开销和功耗 。
HTTPS 协议的安全是有范围 中间人攻击 伪造证书
http安全系数不高但是效率高成本低