关闭

浅谈HTTP协议

标签: http协议
567人阅读 评论(0) 收藏 举报
分类:

什么是HTTP协议

了解什么是http协议前,我们先来说说什么是超文本。
超文本:超文本是指包含指向其他文档链接的文本。

HTTP协议:又称超文本传输协议,定义了客户进程和服务器之间是如何进行文档传输的。

HTTP性质

1>HTTP协议是应用层协议。
2>HTTP报文使用TCP连接进行传送。
3>虽然TCP是面向连接的运输层协议,但HTTP协议本身是无连接的。
4>HTTP协议是无状态的,同一个用户第二次访问页面,服务器相应与第一次访问相同。即不区分不同用户。

HTTP传输数据的过程

这里写图片描述

第一个RTT用于TCP连接,第二个RTT用于请求和接收万维网文档,这里TCP连接第三个报文段捎带客户对文档的请求。

HTTP/1.0和HTTP/1.1

区别:

HTTP1.1中将所有的连接默认为持续连接,而HTTP/1.0内并未标准化。

原因:

如果每进行一次HTTP通信就要断开一次TCP连接,那么在请求一个复杂的页面时,每次请求都会造成无谓的TCP连接建立和断开,
增加通信量的开销。

持续连接的工作方式:

(1)非流水线方式:客户在接收到前一个响应后才能发出下一个请求。所以在服务器发送完一个对象后,TCP连接处于空闲状态,浪费服务器资源。
(2)流水线方式:能够同时并行发送多个请求,而不需要一个接一个地等待响应。

HTTP/2.0:

HTTP/2.0的目标是改善用户使用Web时的速度体验。

HTTP报文结构

请求报文

(1)请求行
请求报文的第一行只有三个内容:方法,请求资源的URL,以及HTTP的版本。
例:GET http://blog.csdn.net/leeezm HTTP/1.1
(2)首部行
首部行包含用来说明浏览器,服务器和报文主体的一些信息。
例:Connection:keep-alive
(3)实体主体:请求报文中一般不使用。

方法

方法 说明
GET 查询
POST 增加
PUT 更新
DELETE 删除
HEAD 获取报文首部
OPTIONS 询问支持的方法
TRACE 追踪路径
CONNECT 要求使用隧道协议连接代理

响应报文

(1)响应报文的第一行为状态行。
状态行包括HTTP的版本,状态码,以及解释状态码的简单短语。
例:HTTP/1.1 202 Accepted   [接受]
(2)首部行
首部行包含用来说明浏览器,服务器和报文主体的一些信息。
例:Connection:keep-alive
(3)实体主体:有些响应报文不用。

状态码:

方法 说明 说明
1XX 信息性状态码 接收的请求正在处理
2XX 成功状态码 请求正常处理完毕
3XX 重定向状态码 需要进行附加操作以完成请求
4XX 客户端错误状态码 服务器无法处理请求
5XX 服务器错误状态码 服务器处理请求出错

常见状态码

200 OK                表示从客户端发来的请求在服务器端被正常处理了
204 No Content        表示服务器接收的请求已被正常处理,但返回的响应报文中不含实体的主体部分。
    用于只需客户端向服务器发消息,而对客户端不需发送新内容。
206 Partial Content   表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求

301 Moved Permanently        永久性重定向
302 Found                    临时性重定向
303 See Other                该资源存在另一个URI,应使用GET方法获取资源
    302和303差别:303明确使用GET方法
304 Not Modified             服务器端资源未改变,可直接使用客户端未过期的缓存
307 Temporary Redirect       临时重定向
    302和307:307不会从POST变成GET

400 Bad Request              表示请求报文中存在语法错误
401 Unauthorized             表示发送的请求需要通过HTTP认证
403 Forbidden                表明对请求资源的访问被服务器拒绝了
404 Not Found                表明服务器上无法找到请求的资源

500 Internal Server Error    表明服务器在执行请求时发生了错误
503 Service Unavailable      表明服务器超负荷或停机维护,无法处理请求

注意
当301,302,303响应状态码返回时,几乎所有的浏览器都会把 POST 改成 GET,并删除请求报文内的主体,之后请求会自动再次发送。

0
0
查看评论

《浅谈HTTP协议》

博主从网络上整合了一些讲解HTTP协议的文章,结合自身所学习的内容,对其进行了汇总。力求精简。文章主要从以下几个方面总结HTTP协议的基本内容: 1.基本概念;2.方法;3.无状态协议;4.TCP连接;5.数据传输流程;6.状态码;7.WEB缓存;8.安全性HTTPS
  • mengzhengyu1025
  • mengzhengyu1025
  • 2016-04-03 17:59
  • 1800

http协议浅谈(一)

http协议是属于应用层的面向对象的协议。 http主要特点是: 支持C/S模式。 灵活:允许传输任意类型数据,由Content-Type标记类型。 简单快速:客户向服务器请求数据时,只需要请求方法(GET、POST、PUT等等)和路径。 无连接:一次连接只能处理一个请求,也就是服务器处理...
  • L_x_Ll
  • L_x_Ll
  • 2016-08-02 11:14
  • 175

浅谈Http协议

一、Http请求报文:     请求报文介绍一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求体4个部分组成,图-1给出了请求报文的一般格式。
  • u012810020
  • u012810020
  • 2016-04-21 18:08
  • 1614

HTTP协议浅谈

待续
  • lidaasky
  • lidaasky
  • 2015-02-26 18:13
  • 1594

浅谈http协议

Http协议定义了万维网客户进程向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。它是万维网上能够可靠地交换文件的基础。  1.Http的操作过程: 要访问www服务器时,首先浏览器会先去 解析域名,一旦获得了服务器的ip地址,浏览器会去建立tcp协议,在服务器端,会有一...
  • l_vaule
  • l_vaule
  • 2016-04-28 19:34
  • 215

浅谈HTTP协议

HTTP是一个属于应用层的面向对象的协议,工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端发送请求。本文只介绍目前应用比较广泛的HTTP/1.1协议,下面从请求与响应两部分分开展开讲解。 一. 请求(Request) 1.消息格式 一个完...
  • sinat_36043973
  • sinat_36043973
  • 2016-09-07 16:02
  • 162

http协议浅谈

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation ...
  • u013561113
  • u013561113
  • 2015-04-08 15:57
  • 285

浅谈Http协议(1)

http://www.2cto.com/net/201604/501935.html 一、Http请求报文: 请求报文介绍一个HTTP请求报文由请求行(requestline)、请求头部(header)、空行和请求体4个部分组成,图-1给出了请求报文的一般格式。 图-1: http请求报...
  • changyourmind
  • changyourmind
  • 2017-03-08 18:55
  • 217

浅谈http协议的ETag

我们都知道,HTTP/1.1中有一个Etag,用来判断请求的文件是否被修改。为什么要使用Etag呢?Etag主要为了解决Last-Modified无法解决的一些问题1、一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候我们并不希望客户端认为这个文件被修改了,而重新GET...
  • xymyeah
  • xymyeah
  • 2009-03-28 22:06
  • 527

浅谈http协议(面试重点)

首先呢,我们来看一下HTTP是什么: http,英文名字叫Hyper Text Transfer Protocol,即超文本传输协议,这个呢,是基于TCP/IP进行数据传输数据的,那么,我们在平时常用的浏览器作为http的客户端通过url向web传递数据。其默认端口是【80】。 关于HTTP的十字诀...
  • zytyxz
  • zytyxz
  • 2017-11-08 15:53
  • 117
    个人资料
    • 访问:8288次
    • 积分:415
    • 等级:
    • 排名:千里之外
    • 原创:35篇
    • 转载:0篇
    • 译文:0篇
    • 评论:2条
    最新评论