超文本传送协议HTTP

1.HTTP的操作过程

HTTP协议定义了浏览器(即万维网客户进程)怎样向万维网服务器请求万维网文档以及服务器怎样把文档传送给浏览器。从层次的角度看,HTTP是面向事务的(transaction oriented)应用层协议,它是万维网上能够可靠地交换文件(包括文本、声音、图像等各种多媒体文件)的重要基础。请注意,HTTP不仅传送完成超文本跳转所必需的信息,而且也传送任何可从互联网上得到的信息,如文本、超文本、声音和图像等。 万维网的工作过程
每个万维网网点都有一个服务器进程,它不断地监听TCP的端口80,以便发现是否有浏览器(即万维网客户。请注意,浏览器和万维网客户是同义词)向它发出连接建立请求。一旦监听到连接建立请求并建立了TCP连接之后,浏览器就向万维网服务器发出浏览某个页面的请求,服务器接着就返回所请求的页面作为响应。最后,TCP连接就被释放了。在浏览器和服务器之间的请求和响应的交互,必须按照规定的格式和遵循一定的规则。这些格式和规则就是超文本传送协议HTTP

HTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。HTTP不必考虑数据在传输过程中被丢弃后又怎样被重传。但是,HTTP协议本身是无连接的。这就是说,虽然HTTP使用了TCP连接,但通信的双方在交换HTTP报文之前不需要先建立HTTP连接。

HTP协议是无状态的( stateless)。也就是说,同一个客户第二次访问同一个服务器上的页面时,服务器的响应与第一次被访问时的相同(假定现在服务器还没有把该页面更新),因为服务器并不记得曾经访问过的这个客户,也不记得为该客户曾经服务过多少次。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。

HTTP/L.1协议较好地解决了这个问题,它使用了持续连接persistentconnection)。所谓持续连接就是万维网服务器在发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和该服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。这并不局限于传送同一个页面上链接的文档,而是只要这些文档都在同一个服务器上就行。

2.HTTP的报文结构

HTTP有两类报文
(1)请求报文—从客户向服务器发送请求报文
请求行、请求头、请求体;请求行包括方法、URL和版本
(2)响应报文—从服务器到客户的回答
相应行、相应头、相应体;相应行包括版本、状态码和状态解释
在这里插入图片描述

方法

在这里插入图片描述

状态码

lxx表示通知信息,如请求收到了或正在进行处理。
2xx表示成功,如接受或知道了。
3xx表示重定向,如要完成请求还必须采取进一步的行动
4xx表示客户的差错,如请求中有错误的语法或不能完成
5xx表示服务器的差错,如服务器失效无法完成请求

Cookie

Cookie是这样工作的。当用户A浏览某个使用 Cookie的网站时,该网站的服务器就为A产生一个唯一的识别码,并以此作为索引在服务器的后端数据库中产生一个项目。接着在给A的HTP响应报文中添加一个叫做 Set-cookie的首部行。这里的“首部字段名”就是
“ Set-cookie”,而后面的“值”就是赋予该用户的“识别码”。例如这个首部行是这样的Set-cookie:31d4d96e407aad42
当A收到这个响应时,其浏览器就在它管理的特定 Cookie文件中添加一行,其中包括这个服务器的主机名和 Set-cookie后面给出的识别码。当A继续浏览这个网站时,每发送个HTTP请求报文,其浏览器就会从其Cookie文件中取出这个网站的识别码,并放到HTTP请求报文的Cookie首部行中:
Cookie:31d4896e407aad42
于是,这个网站就能够跟踪用户31d4d96e407ad42(用户A)在该网站的活动。需要注意的是,服务器并不需要知道这个用户的真实姓名以及其他的信息。但服务器能够知道用户31d4d96e407aad42在什么时间访问了哪些页面,以及访问这些页面的顺序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值