当前位置: 首页 > news >正文

HTTP协议简介

HTTP 协议简介<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

超文本传送协议(Hypertext Transfer ProtocolHTTP )是万维网( World Wide WebWWW,也简称为Web )的基础。 HTTP 服务器(通常的Web 服务器)与HTTP 客户机(通常为网页浏览器)之 间的会话
 
下面对这一过程进行详细分析。

1 客户机与服务器建立连接

与服务器建立连接,就是与SOCKET 建立连接,因此要指定机器名称、资源名

称和端口号,可以通过URL 来提供这些信息。URL 的格式为:

HTTP//<IP 地址>/[端口号]/[路径][?<查询信息>] ,例如:

[url]http://www.vfast.com/index.php?op=ShowProductDetail&product_id=1[/url]

资源的缺省值是INDEX DEFAULT,端口号缺省为80

 

2 客户向服务器提出请求

请求信息包括希望返回的文件名和客户机信息。客户机信息以请求头发送给服

务器,请求头包括HTTP 方法和头字段。

HTTP 方法常用的有GETHEADPOST,而PUTDELETELINKUNLINK

方法许多HTTP 服务器都不使用。

头字段(通常叫做HTTP 头)包括:

DATE:请求发送的日期和时间

PARGMA:用于向服务器传输与实现无关的信息。这个字段还用于告诉代理

服务器,要从实际服务器而不是从高速缓存取资源

FORWARDED:可以用来追踪机器之间,而不是客户机和服务器的消息。这

个字段可以用来追踪在代理服务器之间的传递路由。

MESSAGE_ID:用于唯一地标识消息

ACCEPT: 通知服务器客户所能接受的数据类型和尺寸。(*/*表示可以接受

所有类型的数据。

AOTHORIZATION:向服务器提供旁路安全保护和加密机制,若服务器

不需要这个字段,则不提供这个字段

FROM:当客户应用程序希望想服务器提供有关其电子邮件地址时使用

IF-MODEFIED-SINCE 用于提供条件GET。如果所请求的文档自从所指定的

日期以来没有发生变化,则服务器应不发送该对象。如果所发送的日期格式不合法,

或晚于服务器的日期,服务器会忽略该字段。

BEFERRER:向服务器进行资源请求用到的对象

MIME-VERTION:用于处理不同类型文件的MIME 协议版本号

USER-AGENT:有关发出请求的客户信息

 

3 服务器对请求作出应答

服务器收到一个请求,就会立刻解释请求中所用到的方法,并开始处理应答。

服务器的应答消息也包含头字段形式的报文信息。

报文第一行是状态行,格式为:

<HTTP 版本号><状态代码><解释短语>

状态码是个三位数字码,分为四类:

。以2 开头,表示请求被成功处理

。以3 开头,表示请求被重定向

。以4 开头,表示客户的请求有错

。以5 开头,表示服务器不能满足请求

例如,访问一个不存在的网页或目录时返回的响应,注意

浏览器的标题栏中的代码404就是返回的状态码:

 

解释短语是对状态码的解释。例如 Not Found 是对404 的解释。

响应报文除了返回状态行,还向客户返回几个头字段,如:

DATE:服务器的时间

LAST-MODIFIED:网页最后被修改的时间

SERVER:服务器信息

CONTENT _TYPE:数据类型

RETRY_AFTER:服务器太忙时返回这个字段

WWW_AUTHENTICATE:当服务器的安全机制要求客户发送某中授权信息时

使用该字段

报文最后是实体信息,即客户请求得到的HTTP 服务器上的资源内容。

4 关闭客户与服务器之间的连接

 

相关文章:

  • 再谈获得MCSE认证步骤
  • 浅析Family Show 2.0的数据结构及基本算法
  • ASP.NET AJAX深入浅出系列课程(2):UpdatePanel的使用(上) 笔记 备忘
  • 简单的视频转MPEG2过程
  • LoadRunner权威指南(快速入门)
  • CentOS4.4下邮件服务器架设笔记之SPAM与防毒功能实现
  • MySQL从多个表中删除数据的存储过程
  • FreeBSD 6 手動編譯 MySQL5 (最佳化)(ZT)
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • Linux修改IP
  • 企业网络管理必修课 禁止修改终端IP
  • idea for video conference.
  • C# 汉字转拼音(全拼)
  • 设置vs2005中编译输出的明细
  • Linq学习系列
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • Angular 2 DI - IoC DI - 1
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • JavaScript学习总结——原型
  • Java-详解HashMap
  • Mysql优化
  • nodejs:开发并发布一个nodejs包
  • Redis 中的布隆过滤器
  • Redis学习笔记 - pipline(流水线、管道)
  • 构造函数(constructor)与原型链(prototype)关系
  • 关于springcloud Gateway中的限流
  • 诡异!React stopPropagation失灵
  • 力扣(LeetCode)21
  • 区块链分支循环
  • 小程序测试方案初探
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • MyCAT水平分库
  • zabbix3.2监控linux磁盘IO
  • ​渐进式Web应用PWA的未来
  • #1014 : Trie树
  • (145)光线追踪距离场柔和阴影
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (没学懂,待填坑)【动态规划】数位动态规划
  • .NET CF命令行调试器MDbg入门(三) 进程控制
  • .NET Core引入性能分析引导优化
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • [100天算法】-二叉树剪枝(day 48)
  • [BZOJ 1040] 骑士
  • [C++数据结构](31)哈夫曼树,哈夫曼编码与解码
  • [IE9] IE9 Beta崩溃问题解决方案
  • [k8s系列]:kubernetes·概念入门
  • [Lucene] Lucene 全文检索引擎简介
  • [MySQL FAQ]系列 -- 如何利用触发器实现账户权限审计
  • [one_demo_10]递归解决汉诺塔问题
  • [Ruby on Rails系列]4、专题:Rails应用的国际化[i18n]
  • [WeChall] Training: Encodings I (Training, Encoding)