• HTTP协议&SOCKET协议


    一、 HTTP协议是什么?

        我们在浏览器的地址栏里输入的网站地址叫做 URL(UniformResourceLocator,统一资源定位符)。就像每家每户都有一个门牌地址一样,每个网页也都有一个Internet地址。当你在浏览器的地址框中输入一个URL或是单击一个超级链接时,URL就确定了要浏览的地址。浏览器通过超文本传输协议(HTTP),将Web服务器上站点的网页代码提取出来,并翻译成漂亮的网页。因此,在我们认识HTTP之前,有必要先弄清楚URL的组成 , 例如: http://www.microsoft.com/china/index.htm.它的含义如下:     1.http://:代表超文本传输协议,通知microsoft.com服务器显示Web页,通常不用输入     2.www:代表一个 Web(万维网)服务器;     3.Microsoft.com/:这是装有网页的服务器的域名,或站点服务器的名称;     4.China/:为该服务器上的子目录,就好像我们的文件夹;     5.Index.htm:index.htm是文件夹中的一个HTML文件(网页) 。     我们知道,Internet的基本协议是TCP/IP协议,然而在TCP/IP模型最上层的是应用层 (Applicationlayer),它包含所有高层的协议。高层协议有:文件传输协议FTP、电子邮件传输协议SMTP、域名系统服务DNS、网络新闻传输协议NNTP和HTTP协议等。     HTTP 协议(HypertextTransferProtocol,超文本传输协议) 是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形) 等。这就是你为什么在浏览器中看到的网页地址都是以 “http://”开头的原因。     自WWW诞生以来,一个多姿多彩的资讯和虚拟的世界便出现在我们眼前,可是我们怎么能够更加容易地找到我们需要的资讯呢?当决定使用超文本作为WWW文档的标准格式后,于是在1990年,科学家们立即制定了能够快速查找这些超文本文档的协议,即HTTP协议。经过几年的使用与发展,得到不断的完善和扩展,目前在WWW中使用的是 HTTP/1.0的第六版。

    二、 HTTP是怎样工作的?

        既然我们明白了URL的构成,那么HTTP是怎么工作呢?我们接下来就要讨论这个问题。     由于HTTP协议是基于请求/响应范式的(相当于客户机/服务器 )。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为:统一资源标识符 (URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。     许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求.最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。在Internet上,HTTP 通讯通常发生在TCP/IP连接之上。缺省端口是TCP80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。     这个过程就好像我们打电话订货一样,我们可以打电话给商家,告诉他我们需要什么规格的商品,然后商家再告诉我们什么商品有货,什么商品缺货。这些,我们是通过电话线用电话联系 (HTTP是通过TCP/IP),当然我们也可以通过传真,只要商家那边也有传真。     以上简要介绍了HTTP协议的宏观运作方式,下面介绍一下HTTP协议的内部操作过程。     在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。基于 HTTP 协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。这就好像上面的例子,我们电话订货的全过程。     其实简单说就是任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。你的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包.TCP/IP决定了每个数据包的格式。如果事先不告诉你,你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。     也就是说商家除了拥有商品之外,它也有一个职员在接听你的电话,当你打电话的时候,你的声音转换成各种复杂的数据,通过电话线传输到对方的电话机,对方的电话机又把各种复杂的数据转换成声音,使得对方商家的职员能够明白你的请求。这个过程你不需要明白声音是怎么转换成复杂的数据的。
    什么是Socket?
        Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP 网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。     Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。
        Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述

  • 相关阅读:
    Xposed模块开发基本方法记录
    Win8.1下运行环境/配置问题解决方案总结
    wordpress安装记录
    编译时:virtual memory exhausted: Cannot allocate memory
    Support for AMD usage of jwplayer (require js)
    UC 浏览器远程调试手机web网页记录
    手机浏览器页面点击不跳转(Android手机部分浏览器) 浏览器双击放大网页 解决
    aes 加密,解密(2)
    aes 加密,解密
    ionic 安装步骤
  • 原文地址:https://www.cnblogs.com/rocket-guo/p/3731120.html
Copyright © 2020-2023  润新知