HTTP协议

使用Http协议访问web

我们在浏览器浏览网页的时候,我们会往浏览器输入一个URL,然后浏览器就会将这个URL请求解析发往web服务器,从服务器获取资源,然后返回到浏览器给我们展现出来,这样的通信方式叫做客户端服务器方式,在这个通信过程中,web会用到一个协议:HTTP超文本传输协议,作为一个规范,也就是客户端和服务器约定的有关数据的一些规则。

为了理解HTTP可能需要先了解一下TCP/IP协议族,(这里的TCP/IP可以认为是传输层和网络层的两种协议,也可认为是IP通信过程使用到的协议族的总称):
TCP/IP的分层管理
TCP/IP协议族按层次分为四层:应用层、传输层、网络层、数据链路层,将协议层次化之后,在设计上比较简单,也容易进行修改。
TCP/IP协议族各层的作用

  1. 应用层
    应用层决定了向用户提供应用服务时通信的活动,
    TCP/IP协议族内预存了各类通用的应用服务,应用层决定了选取什么服务,比如FTP(文件传输协议)DNS(域名系统),HTTP协议也属于该层。
  2. 传输层
    传输层上对应用层,下对网络层,提供处于网络连接中的两台计算机之间的数据传输,在这一层,有两个性质不同的协议TCP(传输控制协议)和UDP(用户数据包协议),也可以把它们简单的理解都是用于传输的协议,但是一个可靠一个不可靠。
  3. 网络层
    传输层将数据打包给到网络层,网络层会在整个网络中选择一条适合于发送数据的线路,将数据发送出去。
  4. 链路层
    指传输过程的硬件范畴,处理网络的硬件部分,包括控制操作系统,硬件的设备驱动等。

TCP/IP通信过程描述
用HTTP来举例,首先作为发送端的客户端在应用层(HTTP协议)发出一个想看某个web页面的HTTP请求,
接着,为了传输方便,在传输层(TCP协议)把从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。
在网络层(IP协议),增加作为通信目的的MAC地址后转发给链路层,
接收端收到信息之后往上层发送,一直到应用层。

与HTTP有密切关系的协议:IP、TCP和DNS

1. 负责传输的IP协议
IP协议位于网络层,IP协议的作用就是讲数据发送到对方的手里,为了保证发送的对方就是我们要通信的一方,需要两个重要条件(IP地址和MAC地址)IP地址是指节点被分配到的地址,MAC是指网卡所属的固定地址,IP地址可和MAC地址进行配对,IP地址可变换但是MAC地址不可以。
我们通常在网上通信的时候是直接输入URL,也没见输入IP和MAC地址,这是因为URL其实可以代替IP地址,但是MAC地址怎么知道呢,这时就需要用到ARP协议,此协议利用IP地址来反查出其MAC地址。
2. 确保可靠性的TCP协议
按层次划分,TCP位于传输层,提供可靠的字节流服务,TCP被认为是可靠传输协议,其为了确认对方可以收到数据,会进行三次握手确认:
发送端先发送一个带SYN标志的数据包给对方,接收到消息后,回传一个带有SYN/ACK标志的数据包以传达确认信息,最后,发送端再回传一个带ACK标志的数据包,代表握手结束。
3. 负责域名解析的DNS服务
DNS服务适合HTTP协议一样位于应用层,他提供从域名到IP地址的转换。计算机通信是利用IP地址,但是由于人记住那么多的IP地址有些困难,为了解决这一问题,就将一个地址写为有语言意义的域名,然后在访问时通过DNS解析访问。

HTTP是不保存状态的协议

HTTP是一种不保存状态的协议也叫做无状态协议,HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是说HTTP这个级别,协议对于发送过的请求和响应都不做持久化处理。随着业务的复杂,比如一家购物网站,用户登录上去,不管跳转到哪一个界面都要保持登录的状态,否则,跳转一次就得登录一次,为了解决这一问题HTTP/1.1引入了Cookie技术:
Cookie技术
在无状态的情况下,也有一定的优点,就是速度较快,CPU的压力小,响应时间短,所以,为了在不改变无状态这一条件下,记住状态信息,
Cookie技术就是通过在请求和响应报文中写入Cookie信来控制客户端的状态,Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie信息,当下次客户端再向服务器发送请求时,就会自动在请求报文中添加Cookie信息,服务器发现客户端发送的Cookie之后,回去检查究竟是哪个客户端发送的数据,然后对比服务器的记录,得到之前的状态信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值