当前位置: 首页 > news >正文

南宁网站建设搭建免费企业营销网站制作

南宁网站建设搭建,免费企业营销网站制作,我是建造网站,免费申请靓号文章目录一 基本概念1 计算机网络体系结构2 时延二 应用层#xff1a;HTTP1 请求和响应报文、常见 header2 URL RESTful API3 HTTP 协议通信过程4 HTTP 方法5 HTTP 状态码6 短连接、长连接与流水线7 Cookie8 Session三 应用层#xff1a;HTTPS1 加密方式2 证书认证四 应… 文章目录一 基本概念1 计算机网络体系结构2 时延二 应用层HTTP1 请求和响应报文、常见 header2 URL RESTful API3 HTTP 协议通信过程4 HTTP 方法5 HTTP 状态码6 短连接、长连接与流水线7 Cookie8 Session三 应用层HTTPS1 加密方式2 证书认证四 应用层其它协议1 DNS2 FTP3 SMTP、POP3、IMAP4 DHCP五 传输层TCP UDP1 TCP vs UDP2 三次握手3 四次挥手4 TCP 如何实现可靠传输5 滑动窗口协议6 TCP 流量控制7 TCP 拥塞控制六 常见问题1 从输入 URL 地址到显示主页的过程2 HTTPGET 和 POST 的区别一 基本概念 1 计算机网络体系结构 数据在各层之间的传递过程在向下的过程中需要添加下层协议所需要的首部或者尾部而在向上的过程中不断拆开首部和尾部 五层协议 名称作用应用层为特定应用程序提供数据传输服务例如 HTTP、DNS 等协议数据单位为报文传输层为进程提供通用数据传输服务包括两种协议传输控制协议 TCP提供面向连接、可靠的数据传输服务数据单位为 报文段 主要提供完整性服务用户数据报协议 UDP提供无连接、尽最大努力的数据传输服务数据单位为 用户数据报主要提供及时性服务 网络层为主机提供数据传输服务把传输层传递下来的报文段或者用户数据报封装成分组数据链路层为同一链路的主机提供数据传输服务把网络层传下来的分组封装成帧物理层在传输媒体上传输数据比特流 2.OSI七层协议 应用层、表示层、会话层、传输层、网络层、数据链路层、物理层表示层 数据压缩、加密以及数据描述这使得应用程序不必关心在各台主机中数据内部格式不同的问题会话层 建立及管理会话五层协议没有表示层和会话层而是将这些功能留给应用程序开发者处理 3.TCP/IP 协议 应用层、传输层、网际层、网络接口层相当于五层协议中数据链路层和物理层合并为网络接口层不严格遵循 OSI 分层概念应用层可能会直接使用 IP 层或者网络接口层 2 时延 总时延 排队时延 处理时延 传输时延 传播时延 排队时延分组在路由器的输入队列和输出队列中排队等待的时间取决于网络当前的通信量处理时延主机或路由器收到分组时进行处理所需要的时间例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等传输时延主机或路由器传输数据帧所需要的时间传播时延电磁波在信道中传播所需要花费的时间电磁波传播的速度接近光速 二 应用层HTTP 1 请求和响应报文、常见 header 客户端发送一个请求报文给服务器服务器根据请求报文中的信息进行处理并将处理结果放入响应报文中返回给客户端请求报文 请求行包含请求方法、URL、协议版本请求 Header多个以冒号分隔的键值对分隔行请求体 GET http://www.example.com/ HTTP/1.1 Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.9 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q0.9,en;q0.8 Cache-Control: max-age0 Host: www.example.com If-Modified-Since: Thu, 17 Oct 2019 07:18:26 GMT If-None-Match: 3147526947gzip Proxy-Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 xxxparam11param22响应报文 响应行包含协议版本、状态码以及描述响应 Header多个以冒号分隔的键值对分隔行响应体 HTTP/1.1 200 OK Age: 529651 Cache-Control: max-age604800 Connection: keep-alive Content-Encoding: gzip Content-Length: 648 Content-Type: text/html; charsetUTF-8 Date: Mon, 02 Nov 2020 17:53:39 GMT Etag: 3147526947identgzip Expires: Mon, 09 Nov 2020 17:53:39 GMT Keep-Alive: timeout4 Last-Modified: Thu, 17 Oct 2019 07:18:26 GMT Proxy-Connection: keep-alive Server: ECS (sjc/16DF) Vary: Accept-Encoding X-Cache: HIT!doctype html html headtitleExample Domain/title// 省略... /body /htmlRequest header 【Accept】 浏览器可接收的数据格式【Accept-Encoding】 浏览器可接收的压缩算法如 gzip【Accept-Language】 浏览器可接收的语言如 zh-CN【Connection】 keep-alive 持久性连接close 非持久性连接【cookie】【Host】 请求的域名【User-Agent】浏览器信息【Content-Type】 发送数据的格式(POST)如 application/json Response header 【Content-Type】 返回数据的格式如 application/json【Content-length】 返回数据的字节数【Content-Encoding】 返回数据的压缩算法如 gzip【Set-Cookie】服务器给客户端的 cookie 更多查看 2 URL RESTful API URI/URL URIUniform Resource Identifier统一资源标识符是抽象的标识资源的方式它的具体实现包括 URL Uniform Resource Locator统一资源定位符 和 URN Uniform Resource Name统一资源名称以上并不代表 URI URL URN而是代表 URL 是 URIURN 也是 URIHTTP 使用 URL 来定位资源 RESTful RESTful 架构可以充分的利用 HTTP 协议的各种功能是 HTTP 协议的最佳实践把 HTTP 方法作为动词URL 作为名词视为资源作为一次请求 客户端请求时要明确告诉服务器接受 JSON 格式请求的 HTTP 头的 ACCEPT 属性要设成 application/json服务端返回的数据应该是一个 JSON 对象服务器回应的 HTTP 头的 Content-Type 属性要设为 application/json 3 HTTP 协议通信过程 HTTP 是应用层协议它以 TCP传输层作为底层协议默认端口为 80 服务器在 80 端口等待客户的请求浏览器发起到服务器的 TCP 连接创建套接字 Socket服务器接收来自浏览器的 TCP 连接浏览器HTTP 客户端与 Web 服务器HTTP 服务器交换 HTTP 消息关闭 TCP 连接 4 HTTP 方法 安全的 HTTP 方法不会改变服务器的状态。从这个角度出发GET、HEAD、OPTIONS 是安全的而 POST、DELETE‘PUT 是不安全的幂等的 HTTP 方法同样的请求被执行一次与连续执行多次的效果是一样的幂等方法不应该具有副作用。从这个角度出发GETHEADPUT 和 DELETE 等方法都是幂等的而 POST 方法不是 GET 获取资源HEAD 获取报文首部和 GET 方法类似但是不返回报文实体主体部分 主要用于确认 URL 的有效性以及资源更新的日期时间等POST 传输实体主体PUT 上传文件 没有验证机制存在安全性问题一般不使用PATCH 对资源进行部分修改 PUT 也可以用于修改资源但是只能完全替代原始资源PATCH 允许部分修改DELETE 与 PUT 功能相反并且同样不带验证机制OPTIONS 查询指定的 URL 能够支持的 HTTP 方法CONNECT 要求在与代理服务器通信时建立隧道 使用 SSLSecure Sockets Layer安全套接层和 TLSTransport Layer Security传输层安全协议把通信内容加密后经网络隧道传输 TRACE 追踪路径服务器会将通信路径返回给客户端 发送请求时在 Max-Forwards 首部字段中填入数值每经过一个服务器就会减 1当数值为 0 时就停止传输 5 HTTP 状态码 服务器返回的 响应报文 中第一行为状态行包含了状态码以及原因短语用来告知客户端请求的结果 常见状态码 状态码含义200成功301永久重定向浏览器自动处理每次直接访问新地址302临时重定向浏览器自动处理每次先访问老地址再重定位到新地址304资源未修改403没有权限404资源未找到500服务器错误504网关超时 6 短连接、长连接与流水线 短连接每进行一次 HTTP 通信就要新建一个 TCP 连接长连接只需要建立一次 TCP 连接就能进行多次 HTTP 通信在 HTTP/1.1 之前默认短连接HTTP/1.1 及之后开始默认长连接默认情况下HTTP 请求是按顺序发出的下一个请求只有在当前请求收到响应之后才会被发出。流水线是在 同一条长连接上连续发出请求而不用等待响应返回这样可以减少延迟 7 Cookie HTTP 是无状态的协议HTTP/1.1 引入 Cookie 来保存状态信息Cookie 由服务器发送到用户浏览器并存放在客户端在浏览器之后向同一服务器再次发起请求时被携带上用于告知服务端两个请求是否来自同一浏览器创建过程 # 服务器发送的响应报文包含 Set-Cookie 首部字段 # 客户端得到响应报文后把 Cookie 内容保存到浏览器中 HTTP/1.0 200 OK Content-type: text/html Set-Cookie: yummy_cookiechoco Set-Cookie: tasty_cookiestrawberry[page content]# 客户端之后对同一个服务器发送请求时会从浏览器中取出 Cookie 信息 # 通过 Cookie 请求首部字段发送给服务器 GET /sample_page.html HTTP/1.1 Host: www.example.org Cookie: yummy_cookiechoco; tasty_cookiestrawberry8 Session 除了可以将用户信息通过 Cookie 存储在用户浏览器中也可以利用 Session 存储在服务器端存储在服务器端的信息更加安全 用户进行登录时用户提交包含用户名和密码的表单放入 HTTP 请求报文中服务器验证该用户名和密码如果正确则把用户信息存储到 Redis 中它在 Redis 中的 Key 称为 Session ID服务器返回的响应报文的 Set-Cookie 首部字段包含了这个 Session ID客户端收到响应报文之后将该 Cookie 值存入浏览器中客户端之后对同一个服务器进行请求时会包含该 Cookie 值服务器收到之后提取出 Session ID从 Redis 中取出用户信息继续之前的业务操作 Cookie 被禁用怎么办 最常用的就是利用 URL 重写把 Session ID 直接附加在 URL 路径的后面 三 应用层HTTPS 默认端口号是 443HTTP 先和 SSLSecure Sockets Layer通信再由 SSL 和 TCP 通信也就是说 SSL 作用于 HTTP 和 TCP 之间通过使用 SSLHTTPS 具有了加密防窃听、认证防伪装和完整性保护防篡改 1 加密方式 对称密钥加密和解密使用同一密钥 非对称密钥公开密钥所有人都可以获得通信发送方获得 接收方的公开密钥 之后就可以使用公开密钥进行加密接收方收到通信内容后使用私有密钥解密 HTTPS 采用混合加密机制 使用 非对称密钥 加密方式传输 对称密钥 加密方式所需要的 Secret Key从而保证安全性 获取到 Secret Key 后再使用 对称密钥加密方式进行通信 从而保证效率 2 证书认证 根本目的是传递服务器的公钥 数字证书认证机构CACertificate Authority是客户端与服务器双方都可信赖的第三方机构CA 知道服务器的公钥向服务器颁发证书并附上 CA 私钥对消息摘要的加密签名服务器获得 CA 办法的证书并将证书传递给客户端客户端获得证书并且客户端知道 CA 公钥使用 CA 公钥对证书上的签名解密同时对消息进行散列处理得到摘要比较摘要验证证书的真实性。如果客户端验证服务器的证书是真实的则信任服务器的公钥 四 应用层其它协议 1 DNS DNS 是一个分布式数据库提供了主机名和 IP 地址之间 相互转换 的服务域名具有层次结构从上到下依次为根域名、顶级域名、二级权威域名DNS 可以使用 UDP 或者 TCP 进行传输使用的端口号都为 53一般使用 UDP 进行传输除非返回的响应超过的 512 字节UDP 最大只支持 512 字节的数据 查询可以通过两种方式递归查询和迭代查询 2 FTP 使用两个 TCP 连接进行文件传输分别是数据连接和控制连接 数据连接用来传送文件数据控制连接服务器打开端口号 21 等待客户端的连接客户端主动建立连接后使用这个连接将客户端的命令传送给服务器并传回服务器的应答 根据 数据连接 而非控制连接因为控制连接一定是客户端主动建立的是否是服务器端主动建立FTP 有主动和被动两种模式 主动连接服务器端主动建立数据连接服务器端口号为20客户端端口号随机被动模式客户端主动建立数据连接客户端端口号由客户端自己指定服务器端口号随机 3 SMTP、POP3、IMAP SMTP 是发送协议POP3 和 IMAP 是读取协议因为需要保证邮件传递可靠所以都基于 TCP 连接 如何判断邮箱是否存在利用 SMTP 协议 查找邮箱域名对应的 SMTP 服务器地址尝试与服务器建立连接连接成功后尝试向需要验证的邮箱发送邮件根据返回结果判定邮箱地址的真实性 4 DHCP 动态主机配置协议提供了即插即用的连网方式用户不再需要手动配置 IP 地址等信息 客户端发送 Discover 报文该报文的目的地址为 255.255.255.255:67源地址为 0.0.0.0:68被放入 UDP 中该报文被广播到同一个子网的所有主机上。如果客户端和 DHCP 服务器不在同一个子网就需要使用中继代理DHCP 服务器收到 Discover 报文之后发送 Offer 报文给客户端该报文包含了客户端所需要的信息。因为客户端可能收到多个 DHCP 服务器提供的信息因此客户端需要进行选择如果客户端选择了某个 DHCP 服务器提供的信息那么就发送 Request 报文给该 DHCP 服务器DHCP 服务器发送 Ack 报文表示客户端此时可以使用提供给它的信息 五 传输层TCP UDP 1 TCP vs UDP UDPUser Datagram Protocol是无连接的尽最大可能交付没有拥塞控制面向报文对于应用程序传下来的报文不合并也不拆分只是添加 UDP 首部支持一对一、一对多、多对一和多对多的交互通信TCPTransmission Control Protocol是面向连接的提供可靠交付有流量控制拥塞控制提供全双工通信面向字节流把应用层传下来的报文看成字节流把字节流组织成大小不等的数据块每一条 TCP 连接只能是点对点的一对一 2 三次握手 三次握手的目的是建立可靠的通信信道让双方确认自己与对方的发送与接收是正常的 第一次握手SYNClient 什么都不能确认Server 确认了对方发送正常自己接收正常第二次握手SYN/ACKClient 确认自己发送、接收正常对方发送、接收正常Server 确认对方发送正常自己接收正常第三次握手ACKClient 确认自己发送、接收正常对方发送、接收正常Server 确认自己发送、接收正常对方发送、接收正常 3 四次挥手 第一次挥手FIN客户端-发送一个 FIN用来关闭客户端到服务器的数据传送第二次挥手ACK服务器-收到这个 FIN它发回一 个 ACK确认序号为收到的序号加 1 。和 SYN 一样一个 FIN 将占用一个序号第三次挥手FIN/ACK服务器-关闭与客户端的连接发送一个 FIN 给客户端第四次挥手ACK客户端-发回 ACK 报文确认并将确认序号设置为收到序号加 1 为什么客户端接收到服务器端的 FIN 报文后进入 TIME_WAIT 状态而不是 CLOSED 状态 是为了确保最后一个确认报文能够到达。如果 B 没收到 A 发送来的确认报文那么就会重新发送连接释放请求报文A等待一段时间就是为了处理这种情况的发生 4 TCP 如何实现可靠传输 TCP 给发送的每一个包进行编号接收方对数据包进行排序把有序数据传送给应用层TCP 报文段校验和。端到端的检验和如果收到段的校验和有差错TCP 将丢弃这个报文段TCP 的接收端会丢弃重复的数据流量控制当接收方来不及处理发送方的数据能提示发送方降低发送的速率防止包丢失接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小从而影响发送方的发送速率拥塞控制当网络拥塞时减少数据的发送发送方的 发送窗口大小即已发送未确认的大小 为 拥塞窗口 和接收方的 接收窗口 中较小的一个LastByteSent - LastByteAcked min{receive_window, crowd_window}超时重传 当 TCP 发出一个段后启动一个定时器等待目的端确认收到这个报文段。如果不能及时收到确认将重发报文段 5 滑动窗口协议 GBN 回退N步协议 限制发送方 已发送但未确认的分组数 最大为N采用 累计确认 的机制优点是接收方不需要缓存乱序分组只需关注下一个分组的序号缺点是丢弃乱序到达的分组发生重传的分组数增加 SR 选择重传协议 发送方只重传真正丢失的分组发送方只确认已经到达的分组的序号而不采用累计确认接收方缓存失序到达的分组同时接收方永远不会把分组失序地交给应用层而是先要等待那些更早发送的分组到达 6 TCP 流量控制 流量控制是速度匹配服务即发送方的发送速率和接收方的接收速率相匹配接收窗口接收方缓冲区空闲块大小的计算方法 rwnd RcvBuffer - [LastByteRcvd - LastByteRead] RcvBuffer接收方的缓冲区大小 LastByteRcvd缓冲区接收到的从网络层到达的数据流的最后一个字节的编号 LastByteRead接收方应用进程从缓存中读出的数据流的最后一个字节的编号 当接收方的接收窗口为0即缓存满的时候发送方继续发送只有一个字节数据的报文段保证了后续的传输能正常进行 7 TCP 拥塞控制 TCP 采用的是端到端的拥塞控制而非网络辅助的拥塞控制因为网络层不向端系统提供显式的网络拥塞反馈对于不同原因引起的 Loss处理策略不同 如果收到3个重复 ACK网络还能够传输一些报文段设置 cwnd 为原来的一半然后进入拥塞避免 如果发生超时更严重的拥塞设置 cwnd 1然后进入慢启动 慢启动 慢启动指TCP 发送速率起始慢但以指数增长 初始发送时cwnd 通常设置为一个较小值 MSS发送报文段后等待确认如果收到确认则 cwnd 翻倍 到达慢启动阈值如果丢包设置慢启动阈值 ssthresh cwnd / 2时停止慢启动进入拥塞避免 拥塞避免 当 cwnd 到达慢启动阈值时接近拥塞状态此时 cwnd 线性增长 如果遇到 Loss更新慢启动阈值为 cwnd / 2 根据产生 Loss 的原因采取不同的策略 图中并不包含快速恢复仅包含慢启动和拥塞避免 快速恢复 当收到3个重复ACK时ssthresh cwnd / 2cwnd ssthresh 3然后重传丢失的报文段加3是因为收到3个重复的ACK表明有3个“老”的数据包离开了网络再收到重复的ACK时cwnd收到新的数据包的ACK时cwnd ssthresh。原因是确认了新的数据说明重复ACK的数据都已收到可以回到恢复之前的状态拥塞避免状态 六 常见问题 1 从输入 URL 地址到显示主页的过程 用户输入 URL通过 UDP 连接向 DNS 服务器请求获取域名对应的 IP 地址用户获得 IP 地址与服务器建立 HTTP 连接HTTP 基于 TCP 连接三次握手用户向服务器发送 HTTP Request服务器处理请求这里又可以展开到 Spring MVC 的执行流程返回 HTTP Response浏览器渲染页面 2 HTTPGET 和 POST 的区别 GET 一般用于请求POST 一般用于表单提交GET 方法是不安全的因为会把请求参数拼接到 URL 的后面POST两种方法都是不安全的因为 HTTP 本身是一个明文协议每个 HTTP 请求和响应报文在网络上都是明文传播无论是 URL、header 还是 body。想要安全应该使用 HTTPS GETPOST作用请求服务器返回资源表单提交将信息提交给服务器请求参数请求参数会拼接到 URL 后面请求参数在请求体中用户不可见请求参数长度限制参数拼接到 URL 中长度有限参数在请求体中长度无限制后退或刷新无害数据被重新提交
http://www.huolong8.cn/news/111329/

相关文章:

  • ICP备案和实际网站不是一个名字营口房产建设信息网站
  • 资源下载站 wordpress创意网站制作
  • 工业园网站建设如何建立一个外贸公司网站
  • 爱爱做网站网页游戏服务端
  • 重庆交通网站建设熊掌号提交wordpress
  • 昆明培训网站建设网站页面分析
  • 万网 公司网站链接关于大棚建设的网站
  • 制作网站的软件有哪些网站建立企业
  • 花都区营销型网站建设山东十大软件公司排名
  • 石家庄那有建网站自己创建公司网站
  • php大型网站开发做网站克隆
  • 成都网站排名优化什么叫域名
  • 海南房地产网站建设慈溪做网站的公司
  • 网站建设齐齐哈尔wordpress中文包
  • 网站建设合同违约企业网站备案申请
  • 蔬菜基地做网站合适吗网站设计酷站
  • 整个网站的关键词汉语言专业简历制作说明
  • 高校学风建设网站东方商易网站开发
  • 晋城市城乡建设局网站公司注册网站入口
  • 广东省做农业网站公司随便玩玩在线制作网站
  • 温岭建设阳光网站宝安中心医院妇科
  • 遵义在线遵义晚报wordpress 主题 seo
  • 做旅游网站平台ppt婚纱外贸网站
  • 贵阳市住房和城乡建设厅网站网址升级访问
  • 代理网站在线跳转网站怎么做的
  • 制作网站首页分为哪几部分wordpress 到顶插件
  • 简单网站 快速建设新网站如何推广
  • 民宿网站建设问卷调查建设银行信用卡官网站首页
  • 网站怎么营销推广给wordpress写一个留言表单
  • 图片 网站开发公司网站改版方案