HTTP基础知识(四)

HTTP连接使用TCP/IP来传输数据。对于从客户端到服务器的每一个请求,都有四个步骤:

  1. 默认情况下,客户端在端口80打开与服务器的一个TCP连接,URL中还可以指定其他端口。
  2. 客户端向服务器发送信息,请求指定路径上的资源。这个请求包括一个首部,可选的还可以有一个空行,后面使这个请求的数据。
  3. 服务器向客户端发送响应。响应以响应码开头,后面是包含元数据的头部,一个空行以及所请求的文档或错误信息。
  4. 服务器关闭连接

这是基本HTTP1.0过程。

在HTTP1.1及以后版本中,可以通过一个TCP连接额连续发送多个请求和响应。也就是第一步和第四步之间,第二步和第三步可以反复很多次。另外HTTP1.1中,请求和响应可以分为多个块发送。

每个请求和响应都有同样的基本形式:一个首部行,一个包含元数据的HTTP首部、一个空行,然后是一个消息体。

一般的客户端请求如下所示:

图片

第一行称为请求行,包括一个方法、资源的路径以及HTTP的版本。

首部中通常还会有其他信息。各行采用如下形式:

Keyword: value

关键字不区分大小写,值又是区分大小写,有时不区分。如果一个值太长,可以在下一行最前面增加一个空行或制表符,接续上一行。

Accept告诉服务器客户端可以处理那些数据类型。

MIME媒体类型分为两级:类型和子类型。已经定义了8个顶级类型:

  • text/*
  • image/*
  • model/*:表示3D模型,如VRML文件
  • audio/*
  • video/*
  • application/*:表示二进制数据
  • message/*:表示协议特定信封
  • multipart/*:表示多个文档和资源的容器

可以自有定义非标准的定制类型和子类型,只要他们以x-开头。如application/x-shockwave-flash类型。

以后一个请求以一个空行结束,也就是说包括两个空行/换行对。

一旦服务器看到这个空行,它就开始通过同一个连接向客户端发送它的响应。这个响应以一个状态码开始,后面是一个首部,这个首部采用请求首部相同的“名:值”语法描述响应,然后是一个空行,最后是请求资源。

 

 

Keep-Alive

HTTP1.1以后,服务器不比在发送响应后就关闭连接。可以保持连接打开,在同一个socket上等待来自客户端的心情求。

客户可以在HTTP请求头部上包括一个Connection字段,指定值为Keep-Alive,指示它希望重用一个socket

Connetion:Keep-Alive

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值