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

衡阳企业网站建设电脑自己做网站可以吗

衡阳企业网站建设,电脑自己做网站可以吗,十大营销咨询公司,网站建设流图visio一、 HTTP请求和响应步骤 图片来自#xff1a;理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤#xff0c;下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 二、TCP/IP协议 TCP/IP协议模型#xff08;Transmission Control Protocol/Internet Pr…一、 HTTP请求和响应步骤 图片来自理解Http请求与响应 以上完整表示了HTTP请求和响应的7个步骤下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。 二、TCP/IP协议 TCP/IP协议模型Transmission Control Protocol/Internet Protocol包含了一系列构成互联网基础的网络协议是Internet的核心协议通过20多年的发展已日渐成熟并被广泛应用于局域网和广域网中目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合通常被认为是一个四层协议系统与OSI的七层模型相对应。 HTTP协议就是基于TCP/IP协议模型来传输信息的。 (1). 链路层 也称作数据链路层或网络接口层在第一个图中为网络接口层和硬件层通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆或其他任何传输媒介的物理接口细节。ARP地址解析协议和RARP逆地址解析协议是某些网络接口如以太网和令牌环网使用的特殊协议用来转换IP层和网络接口层使用的地址。 (2). 网络层 也称作互联网层在第一个图中为网际层处理分组在网络中的活动例如分组的选路。在TCP/IP协议族中网络层协议包括IP协议网际协议ICMP协议Internet互联网控制报文协议以及IGMP协议Internet组管理协议。 IP是一种网络层协议提供的是一种不可靠的服务它只是尽可能快地把分组从源结点送到目的结点但是并不提供任何可靠性保证。同时被TCP和UDP使用。TCP和UDP的每组数据都通过端系统和每个中间路由器中的IP层在互联网中进行传输。 ICMP是IP协议的附属协议。IP层用它来与其他主机或路由器交换错误报文和其他重要信息。 IGMP是Internet组管理协议。它用来把一个UDP数据报多播到多个主机。 (3). 传输层 主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中有两个互不相同的传输协议TCP传输控制协议和UDP用户数据报协议。 TCP为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层确认接收到的分组设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信因此应用层可以忽略所有这些细节。为了提供可靠的服务TCP采用了超时重传、发送和接收端到端的确认分组等机制。 UDP则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机但并不保证该数据报能到达另一端。一个数据报是指从发送方传输到接收方的一个信息单元例如发送方指定的一定字节数的信息。UDP协议任何必需的可靠性必须由应用层来提供。 (4). 应用层 应用层决定了向用户提供应用服务时通信的活动。TCP/IP 协议族内预存了各类通用的应用服务。包括 HTTPFTPFile Transfer Protocol文件传输协议DNSDomain Name System域名系统服务。 当应用程序用TCP传送数据时数据被送入协议栈中然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息有时还要增加尾部信息该过程如图所示。 当目的主机收到一个以太网数据帧时数据就开始从协议栈中由底向上升同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识以确定接收数据的上层协议。这个过程称作分用Demultiplexing。协议是通过目的端口号、源I P地址和源端口号进行解包的。 通过以上步骤我们从TCP/IP模型的角度来理解了一次HTTP请求与响应的过程。 下面这张图更清楚明白 下面具体来看如何进行一步步操作的。 三、TCP三次握手 TCP是面向连接的无论哪一方向另一方发送数据之前都必须先在双方之间建立一条连接。在TCP/IP协议中TCP协议提供可靠的连接服务连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。 第一次握手建立连接。客户端发送连接请求报文段将SYN位置为1Sequence Number为x然后客户端进入SYN_SEND状态等待服务器的确认 第二次握手服务器收到SYN报文段。服务器收到客户端的SYN报文段需要对这个SYN报文段进行确认设置Acknowledgment Number为x1(Sequence Number1)同时自己自己还要发送SYN请求信息将SYN位置为1Sequence Number为y服务器端将上述所有信息放到一个报文段即SYNACK报文段中一并发送给客户端此时服务器进入SYN_RECV状态 第三次握手客户端收到服务器的SYNACK报文段。然后将Acknowledgment Number设置为y1向服务器发送ACK报文段这个报文段发送完毕以后客户端和服务器端都进入ESTABLISHED状态完成TCP三次握手。 为什么要三次握手 为了防止已失效的连接请求报文段突然又传送到了服务端因而产生错误。 具体例子“已失效的连接请求报文段”的产生在这样一种情况下client发出的第一个连接请求报文段并没有丢失而是在某个网络结点长时间的滞留了以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段同意建立连接。假设不采用“三次握手”那么只要server发出确认新的连接就建立了。由于现在client并没有发出建立连接的请求因此不会理睬server的确认也不会向server发送数据。但server却以为新的运输连接已经建立并一直等待client发来数据。这样server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况client不会向server的确认发出确认。server由于收不到确认就知道client并没有要求建立连接。” 四、HTTP协议 Http是什么 通俗来讲他就是计算机通过网络进行通信的规则是一个基于请求与响应无状态的应用层的协议常基于TCP/IP协议传输数据。目前任何终端手机笔记本电脑。。之间进行任何一种通信都必须按照Http协议进行否则无法连接。 四个基于 请求与响应客户端发送请求服务器端响应数据 无状态的协议对于事务处理没有记忆能力客户端第一次与服务器建立连接发送请求时需要进行一系列的安全认证匹配等因此增加页面等待时间当客户端向服务器端发送请求服务器端响应完毕后两者断开连接也不保存连接状态一刀两断恩断义绝从此路人下一次客户端向同样的服务器发送请求时由于他们之前已经遗忘了彼此所以需要重新建立连接。 应用层Http是属于应用层的协议配合TCP/IP使用。 TCP/IPHttp使用TCP作为它的支撑运输协议。HTTP客户机发起一个与服务器的TCP连接一旦连接建立浏览器客户机和服务器进程就可以通过套接字接口访问TCP。 针对无状态的一些解决策略 有时需要对用户之前的HTTP通信状态进行保存比如执行一次登陆操作在30分钟内所有的请求都不需要再次登陆。于是引入了Cookie技术。 HTTP/1.1想出了持久连接HTTP keep-alive方法。其特点是只要任意一端没有明确提出断开连接则保持TCP连接状态在请求首部字段中的Connection: keep-alive即为表明使用了持久连接。 等等还有很多。。。。。。 下面开始讲解重头戏HTTP请求报文响应报文对应于上述步骤的23456。 HTTP报文是面向文本的报文中的每一个字段都是一些ASCII码串各个字段的长度是不确定的。HTTP有两类报文请求报文和响应报文。 五、HTTP请求报文 一个HTTP请求报文由请求行request line、请求头部header、空行和请求数据4个部分组成下图给出了请求报文的一般格式。 1.请求行 请求行分为三个部分请求方法、请求地址和协议版本 请求方法 HTTP/1.1 定义的请求方法有8种GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE。 最常的两种GET和POST如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。 请求地址 URL:统一资源定位符是一种自愿位置的抽象唯一识别方法。 组成协议//主机端口/路径 端口和路径有时可以省略HTTP默认端口号是80 如下例 有时会带参数GET请求 协议版本 协议版本的格式为HTTP/主版本号.次版本号常用的有HTTP/1.0和HTTP/1.1 2.请求头部 请求头部为请求报文添加了一些附加信息由“名/值”对组成每行一对名和值之间使用冒号分隔。 常见请求头如下 请求头部的最后会有一个空行表示请求头部结束接下来为请求数据这一行非常重要必不可少。 3.请求数据 可选部分比如GET请求就没有请求数据。 下面是一个POST方法的请求报文 POST  /index.php HTTP/1.1    请求行 Host: localhost User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2  请求头 Accept: text/html,application/xhtmlxml,application/xml;q0.9,/;q0.8 Accept-Language: zh-cn,zh;q0.5 Accept-Encoding: gzip, deflate Connection: keep-alive Referer: http://localhost/ Content-Length25 Content-Typeapplication/x-www-form-urlencoded   空行 usernameaapassword1234  请求数据 六、HTTP响应报文 HTTP响应报文主要由状态行、响应头部、空行以及响应数据组成。 1.状态行 由3部分组成分别为协议版本状态码状态码描述。 其中协议版本与请求报文一致状态码描述是对状态码的简单描述所以这里就只介绍状态码。 状态码 状态代码为3位数字。 1xx指示信息--表示请求已接收继续处理。 2xx成功--表示请求已被成功接收、理解、接受。 3xx重定向--要完成请求必须进行更进一步的操作。 4xx客户端错误--请求有语法错误或请求无法实现。 5xx服务器端错误--服务器未能实现合法的请求。 下面列举几个常见的 HTTP状态码 200 请求已成功请求所希望的响应头或数据体将随此响应返回。201 请求已经被实现而且有一个新的资源已经依据请求的需要而建立且其 URI 已经随Location 头信息返回202 服务器已接受请求但尚未处理301 永久移动 请求的网页已永久移动到新位置。 服务器返回此响应对 GET 或 HEAD 请求的响应时会自动将请求者转到新位置。302 临时移动 服务器目前从不同位置的网页响应请求但请求者应继续使用原有位置来进行以后的请求。303 查看其他位置 请求者应当对不同的位置使用单独的 GET 请求来检索响应时服务器返回此代码。304 未修改 自从上次请求后请求的网页未修改过。 服务器返回此响应时不会返回网页内容。305 使用代理 请求者只能使用代理访问请求的网页。 如果服务器返回此响应还表示请求者应使用代理。 307 临时重定向 服务器目前从不同位置的网页响应请求但请求者应继续使用原有位置来进行以后的请求。 401 当前请求需要用户验证。如果当前请求已经包含了 Authorization 证书那么401响应代表着服务器验证已经拒绝了那些证书403 服务器已经理解请求但是拒绝执行它。与401响应不同的是身份验证并不能提供任何帮助而且这个请求也不应该被重复提交404 请求失败请求所希望得到的资源未被在服务器上发现500 服务器遇到了一个未曾预料的状况导致了它无法完成对请求的处理。一般来说这个问题都会在服务器的程序码出错时出现。501 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法并且无法支持其对任何资源的请求。502 作为网关或者代理工作的服务器尝试执行请求时从上游服务器接收到无效的响应。 503 由于临时的服务器维护或者过载服务器当前无法处理请求。这个状况是临时的并且将在一段时间以后恢复。 2.响应头部 与请求头部类似为响应报文添加了一些附加信息 常见响应头部如下 3.响应数据 用于存放需要返回给客户端的数据信息。 下面是一个响应报文的实例 HTTP/1.1 200 OK  状态行 Date: Sun, 17 Mar 2013 08:12:54 GMT  响应头部 Server: Apache/2.2.8 (Win32) PHP/5.2.5 X-Powered-By: PHP/5.2.5 Set-Cookie: PHPSESSIDc0huq7pdkmm5gg6osoe3mgjmm3; path/ Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check0, pre-check0 Pragma: no-cache Content-Length: 4393 Keep-Alive: timeout5, max100 Connection: Keep-Alive Content-Type: text/html; charsetutf-8   空行 html  响应数据 head titleHTTP响应示例title /head body Hello HTTP! /body /html 关于请求头部和响应头部的知识点很多这里只是简单介绍。 通过以上步骤数据已经传递完毕HTTP/1.1会维持持久连接但持续一段时间总会有关闭连接的时候这时候据需要断开TCP连接。 七、TCP四次挥手 当客户端和服务器通过三次握手建立了TCP连接以后当数据传送完毕肯定是要断开TCP连接的啊。那对于TCP的断开连接这里就有了神秘的“四次分手”。 第一次分手主机1可以使客户端也可以是服务器端设置Sequence Number向主机2发送一个FIN报文段此时主机1进入FIN_WAIT_1状态这表示主机1没有数据要发送给主机2了 第二次分手主机2收到了主机1发送的FIN报文段向主机1回一个ACK报文段Acknowledgment Number为Sequence Number加1主机1进入FIN_WAIT_2状态主机2告诉主机1我“同意”你的关闭请求 第三次分手主机2向主机1发送FIN报文段请求关闭连接同时主机2进入LAST_ACK状态 第四次分手主机1收到主机2发送的FIN报文段向主机2发送ACK报文段然后主机1进入TIME_WAIT状态主机2收到主机1的ACK报文段以后就关闭连接此时主机1等待2MSL后依然没有收到回复则证明Server端已正常关闭那好主机1也可以关闭连接了。 为什么要四次分手 TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式这就意味着当主机1发出FIN报文段时只是表示主机1已经没有数据要发送了主机1告诉主机2它的数据已经全部发送完毕了但是这个时候主机1还是可以接受来自主机2的数据当主机2返回ACK报文段时表示它已经知道主机1没有数据发送了但是主机2还是可以发送数据到主机1的当主机2也发送了FIN报文段时这个时候就表示主机2也没有数据要发送了就会告诉主机1我也没有数据要发送了之后彼此就会愉快的中断这次TCP连接。 通过以上步骤便完成了HTTP的请求和响应进行了数据传递这其中涉及到需要知识点都进行了逐一了解。
http://www.zqtcl.cn/news/468115/

相关文章:

  • 个人网站免费推广广饶网站制作
  • 怎么检测网站是否安全拍卖网站开发
  • 沂源网站制作自建网站的流程
  • 网站关键词收录查询网站最好服务器
  • 做百度移动网站优网站建设类论文选题
  • 自己做的网站怎样让百度搜到长沙专业外贸建站公司
  • 上海缔客网站建设公司网站策划书内容不包括什么
  • 找团队做网站网站建设 通知
  • 网站标题上的小图标怎么做的霞浦建设局网站
  • 国外那些网站做展厅比较好vp代理商网站管理系统
  • 广州最大网站建设wordpress数字超市
  • 怎么提高网站seo优化关键字排名wordpress媒体库搜索
  • 伊春网站制作怎么做视频网站赚钱吗
  • 前端网站开发邹城住房城乡建设部网站
  • 淘宝u站怎么做网站的网站建设费 科研 类
  • 代点任意广告链接网站怎样做才能让百度搜到网站产品
  • 宿迁网站搭建南宁建设局
  • app官网入口昆明排名优化
  • 新乡网站建设开发wordpress如何添加一个文章列表页
  • 中国3大做外贸的网站seo建站营销
  • 建站免费加盟高台县建设局网站
  • 网站联盟推广江门提供网站制作平台
  • 百度上面如何做网站asp源码下载
  • 婚庆网站的设计意义网站规格
  • 网站收录率嘉兴网站开发公司
  • 优秀的设计网站不备案 没版权 网站
  • 建设 互动 网站 模式网络营销模式不是孤立存在的
  • 怡梦姗网站做么上海21世纪人才网官网登录
  • 家政网站建设方案分析哈尔滨做网站找哪家好
  • 如何建设论坛网站营销宣传策划方案