http基础篇(一)

来源:互联网 发布:western分析软件 编辑:程序博客网 时间:2024/06/05 03:05

HTTP基础篇(一)


- 1.了解web及网络基础

- 2.简单的HTTP协议

- 3.HTTP报文内的HTTP信息

- 4.返回结果的HTTP状态码

- 5.与HTTP协作的web服务器


我们先来说一下http中的一些基本概念


    超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。    HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在  http和其他几种网络协议[1]多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。  通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器(向客户端)发回一个状态行,比如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。  HTTP协议的网页HTTP使用TCP而不是UDP的原因在于(打开一个)一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正。  通过HTTP或者HTTPS协议请求的资源由统一资源标示符(Uniform Resource Identifiers)(或者,更准确一些,URLs)来标识。

了解web及网络基础


为了了解理解HTTP,我们有必要实现理解下tcp/ip协议族。通常我们使用的网络实在hcp/ip协议族的基础上运行的。而我们现在要学的http呢,是它内部的一个子集。计算机与网络要相互通信,双方就必须基于相同的方法。比如,如何探测到通信目标,由哪一边发起通信,使用哪种语言进行通信、怎样结束通信等规格就必须要事先确定。不同的硬件、操作系统之间的通信,所有的这一切都需要一种规则,而我们把这种规则成为协议。
我们来看下面这张图:
这里写图片描述

像这样把与互联网关联的协议集合起来总称为TCP/IP。


1.1 、看下TCP/IP的分层管理


TCP/IP按照层次分为下面这四层:应用层、传输层、网络层、和数据链路层。对与层次划分,当我们某一块的数据需要改动的时候,我们就只改动相应层的信息即可,我们只需要把对应的层改掉即可。我们就可以在各个层进行设计就行了。我们来看下各个层的作用。
这里写图片描述

应用层:决定了向用户提供应用服务时通信的活动。HTTP就处于该层
传输层:提供处于网络连接中两台计算机之间的数据传输。
网络层:其用来处理网络上流动的数据包,数据包是网络在传输过程中的最小数据单位,该层确定了通过怎样的路径到达对方的计算机,并把数据包传给对方 ,如果其余多台计算机进行通信,网络层的作用就是在众多的选项内选择一条传输路线。
链路层(网络接口):用来连接网络的硬件部分,包括控制操作系统,硬件的设备驱动,以及光纤等物理可见部分。


1.2、 TCP/IP通信传输流


啥话也不多说了,咋们通过来看这张图,你就会很明白了。
这里写图片描述

发送端层与层之间传输的过程中,每一层都会被打包上一个该属于这个层的头部信息,反之,接收端在层与层之间传输时,每一层都会把对应的首部信息去掉。我们把这种信息包装起来的方法叫做封装。


1.3与HTTP关系密切的IP/TCP和DNS


通过上面的图,我们都知道IP位于网络层,他的作用就是把数据包传给对方,而我们要确保将信息传到对方那里,其中两个重要的知识点是就是IP地址和MAC,IP地址指明了节点被分配到的地址,MAC指的就是网卡所属的固定地址,IP地址可以和MAC进行匹配,IP地址可以变换,但是MAC地址十几本不会更改的。使用ARP协议凭借MAC地址进行地址通信,我们在网络通信过程中,一般在同一个局域网下的情况是很少见的,经常需要通过多台计算机服务器进行中专才可以,在进行中转时,我们需要根据下一台中转设备的MAC地址来搜寻下一个中专目标,而ARP是一种用于解析地址的协议,通过IP地址就可以查出MAC地址。
我们来看这样一张图
这里写图片描述


1.4、确保可靠的TCP协议


下面说的就是你们都知道或听说的著名的三次握手了,在建立客户端与服务端连接式,我们首先是发送端发送SYN数据包给接收端,两个人先乎建立第一次握手,在接收端接到SYN数据包确定信息后,然后发送带有ACK和SYN的数据包给发送端,说你的信息我都知道了,我已发送给你ACK的数据包,等到发送端收到这两个数据包之后,这是他们俩之间第二次握手,然后发送端再把ACK的数据包发给接收端,两个人进行了第三次握手,从此两个人的友谊之路就开始了,开始了正常的通信。我们来看下面这张图:
这里写图片描述

需要注意的一点时,如果在这三次握手的过程中,其中某个阶段断开,TCP协议会以相同的顺序重新发送数据包。


1.5、负责域名解析的DNS服务


DNS位于应用层,他提供ip地址的解析服务,计算机可以被赋予ip地址,也可以被赋予域名和主机名,有时候,我们拿到手的并不是ip地址,而是像www.baidu.com,这样的东西,而现在就是DNS发挥作用的时候了,DNS提供用过域名查找IP地址,或者通过ip地址查找域名,这样我们就可以通过域名查到对应的ip地址,或者通过ip地址查到对应的域名,进行浏览器之间的访问。
这里写图片描述


1.6、各种协议与HTTP之间的关系


看完了上面的这些东西,我们来整体看一下一张图,这张图可以看见很清晰的看到HTTP与各种协议之间的关系。
这里写图片描述


1.7、URL与URI


先说下两个的名称吧:
URL:统一资源定位符
URI:统一资源标识符
URI是字符串标识某一互联网的资源,而URL是表示资源的地点,因此可见URL是URI的子集。
这里写图片描述


URI的格式
这里写图片描述
我们来看下这写东西都是那些东西:
登录信息(认证):一般就是我们的用户名,用户密码,这一般都用做获取资源时的必要资源。
服务器地址:使用绝对的URI必须指定带访问服务器的地址,地址可以是像hacker.jp这种域名,也可以是ip地址。
服务器的端口号:指定服务器的端口号 ,此项也是可选项,若用户省略,浏览器会将默认的端口号加上去一般默认的端口号为80端口号。
带层次的文件路径:指定文件的特定路径来定位特指的资源
查询字符串:针对已指定的文件路径内的资源,可以使用查询字符串传入特定的参数。
片段标识符:使用片段标识符可标记出已获得资源的中的子资源(文件中的某个位置)


后续还在更新,敬请关注…………………….

原创粉丝点击