现在的位置: 首页 > 综合 > 正文

http相关的知识

2014年09月05日 ⁄ 综合 ⁄ 共 2098字 ⁄ 字号 评论关闭

0:前提

最近工作中要对客户端的http请求的地址需要更改,期初只是知道http是一个应用层的以client和server为模式的数据交互协议,但是一个http数据包的格式是什么样子,不知道。所以自己的就把数据包的格式打印了出来。来看看长啥样子:我在浏览器中数据的是:203.195.192.51/check_client?store_id=1&access_token=a1b1c1

当此请求经过设备时,对此请求进行处理,加上此客户端的MAC地址信息:&mac=60:c5:47:92:02:0c


在上面的请求数据包中:关注俩个地方:get和host字段:其值分别为:

get:/check_client?store_id=1&access_token=a1b1c1&mac=d4:be:d9:0a:27:0c

host:203.195.192.51  其将组合就是URL中的访问地址。

其中server端的想要数据包为后面的send to之后的内容:

其中可以知道:响应状态为:ok.

建立起一个TCP连接需要经过“三次握手”:
第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即
SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开)














1; 来自网上的说明资料 

URL:http://www.aoxu.com.cn/ 在这里面,http是协议www.aoxu.com.cn是主机网络地址,注意末尾的/就是资源路径,这是必须的。当我们平时使用Web浏览器访问时,只需要输入www.aoxu.com.cn就可以访问,这是由于Web浏览器替我们自动补齐了前面的http://和最后的/Web浏览器发起请求时使用的URI还是完整的,Web浏览器并不强制用户输入格式规范的URI。 

当我们在浏览器的地址栏输入www.baidu.com然后按回车,这之后发生了什么事,我们直接看到的是打开了对应的网页,那么内部客户端和服务端是如何通信的呢?

1、     1、URL自动解析

      HTTP URL包含了用于查找某个资源的足够信息,基本格式如下:HTTP://host[“:”port][abs_path],其中HTTP表示桶盖HTTP协议来定位网络资源;host表示合法的主机域名或IP地址,port指定一个端口号,缺省80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出,通常这个工作浏览器自动帮我们完成。

例如:输入www.163.com;浏览器会自动转换成:HTTP://www.163.com/

2、获取IP,建立TCP连接

浏览器地址栏中输入"HTTP://www.xxx.com/"并提交之后,首先它会在DNS本地缓存表中查找,如果有则直接告诉IP地址。如果没有则要求网关DNS进行查找,如此下去,找到对应的IP后,则返回会给浏览器

当获取IP之后,就开始与所请求的Tcp建立三次握手连接,连接建立后,就向服务器发出HTTP请求

3、客户端浏览器向服务器发出HTTP请求

一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令,接着以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

例如:GET/sample/hello.jsp HTTP/1.1

4Web服务器应答,向浏览器发送数据

客户机向服务器发出请求后,服务器会客户机回送应答,

HTTP/1.1 200 OK

应答的第一部分是协议的版本号和应答状态码,正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

5、Web服务器关闭TCP连接

一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码

Connection:keep-alive

TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽



抱歉!评论已关闭.