[笔记] 应用层协议(HTTP)

要编写两个用于网络通信的应用软件,程序员必须会考虑几个问题:

  1. 传输的信息的语法和语义
  2. 客户端或者服务器端是否可以开始通信
  3. 当通信出错时怎么办
  4. 什么时候结束通信

为了规范这些细节,程序员编写了应用层协议。应用层协议根据用途划分主要分为两大类:

  1. Private communication.
  2. Standardized  services.

这个很好理解,对于互联网服务来说,如果你是私人用途的话,这个通信过程是直接的,无需为这个写一个正式地通用的协议(作者接触的实例较少,无法举个很恰当的例子);而如果这个互联网服务希望广大的程序员为它编写服务器软件(用来提供服务)或客户端软件(用来获取服务),这种情形下,应用层协议必须独立于任何实例,并且这个协议的规定必须准确清晰,保证互操作性。例如Web服务。

应用层协议主要有两方面的规范:描述(Representation)和传输(Transfer)。

World Wide Web 是被应用得最广的互联网服务。由于Web很复杂,产生了针对不同部分和细节的协议标准。

URL(Uniform Resouece Location)的基本格式:

protocol:// computer_name:port/ document_name%parameters

HTTP(HyperText Transfer Protocol)的主要表征:

  1. 使用文本控制消息
  2. 传输二进制文件
  3. 上载或下载数据
  4. 合并缓存

在应用层传输的是HTTP数据包。

A Get request:

GET /item version CRLF

 使用HTTP时,浏览器发送版本信息给服务器,然后选择两边都能理解的最高HTTP版本。即HTTP协商。

A basic response header:

HTTP/1.0 status_code status_string CRLF
Server: server_identification CRLF
Last-Modified: date_document_was_changed CRLF
Content-Length: datasize CRLF
Content-Type: document_type CRLF
CRLF

status_code状态码 status_string状态描述

server_identification服务器描述,可能包含服务器域名

content-length the size of the data item单位是byte

content-type 文件类型/文件格式 eg. text/html  image/jpeg

 Header+blank line+contents

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值