HTTP协议--请求与响应
1、简介
HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990 年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW 中使用的是HTTP/1.0的第六版,HTTP/1.1 的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。
HTTP 协议的主要特点可概括如下:
1.支持客户/服务器模式。
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP 协议简单,使得HTTP 服务器的程序规模小,因而通信速度很快。
3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由Content-Type 加以标记。
4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5.无状态:HTTP 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
2、HTTP请求与响应
2.1 HTTP请求--方法
|
GET |
请求获取由Request-URI所表示的资源 |
|
POST |
在Request-URI所标识的资源后附加新的数据 |
|
HEAD |
请求获取由Request-URI所标识的资源的响应消息报头 |
|
PUT |
请求服务器存储一个资源,并用Request-URI作为其标识 |
|
DELETE |
请求服务器删除由Request-URI所标识的资源 |
|
TRACE |
请求服务器回送收到的请求信息,主要用于测试或诊断 |
2.2 HTTP请求--常见响应码
|
状态码 |
描述 |
客户端请求成功 |
|
200 |
OK |
客户端请求成功 |
|
206 |
Partial content |
返回请求实体的部分内容 |
|
301 |
Moved Permanently |
目标永久移动 |
|
302 |
found |
找到目标(目标临时被移动) |
|
304 |
Not Modified |
目标没有修改 |
|
400 |
Bad Request |
客户端请求有语法错误,不能被服务器所理解 |
|
403 |
Forbidden |
服务器收到请求,但是拒绝提供服务 |
|
404 |
Not Found |
请求资源不存在 |
|
413 |
Request Entity Too Large |
请求实体太大 |
|
500 |
Internal Server Error |
服务器发生不可预测的错误,导致无法完成客户端的请求 |
|
502 |
Bad Gateway |
网关错误,有可能是网络不通或负载过大导致。 |
|
504 |
Gateway Timeout |
连接超时 |
3、常见HTTP头域
[plain] view plaincopy
- Accept (标识浏览器能够接受的实体类型)
- Accept-Charset /Accept-Language (字符集和语言)
- Accept-Encoding (接受编码格式 gzip或者 deflat)
- Cache-Control ( 缓存策略。例如:Cache-Control: no-cache )
- Pragma ( 标注。例如:Pragma: no-cache )
- Connection ( 连接参数。例如:Connection: close )
- Date (日期。 例如:Date:Mon,31Dec200104:25:57GMT)
- Content-Type (标识实体类型。例如:Content-Type: text/html。 Mime.types文件例子 )
- Transfer-Encoding (传输编码。Chunk )
- Content-Length (实体长度)
- Set-Cookie / Cookie
- User-Agent (浏览器标识)
- Host (目标主机)
- Expires
- Last-Modified
- Range/Content-Range
- Content-Disposition
- Referer (引用,通常是上一个访问的URL)
4、HTTP协议的格式和结构---例子
[plain] view plaincopy
- GET /index.shtml HTTP/1.1
- Host: www.google.com
- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
- Accept-Language: zh-cn,zh;q=0.5
- Accept-Encoding: gzip,deflate
- Accept-Charset: gb2312,utf-8;q=0.7,*;q=0.7
- Keep-Alive: 300
- Connection: keep-alive
- HTTP/1.x 200 OK
- Date: Tue, 10 Feb 2009 08:26:37 GMT
- Server: Apache/2.2.8 (Unix) PHP/5.2.6
- Accept-Ranges: bytes
- Keep-Alive: timeout=5, max=99
- Connection: Keep-Alive
- Transfer-Encoding: chunked
- Content-Type: text/html; Charset=utf-8
HTTP协议--请求与响应的更多相关文章
- HTTP协议——请求与响应
摘要:1.HTTPHTTP:HyperTextTransferProtocol,超文本传输协议的缩写,是本地浏览器和服务器之间进行通信的传送协议.基于TCP/IP协议来传送数据,如HTML文件,图片等 ...
- javaweb(四)——Http协议(请求头,响应头详解)
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...
- Web协议详解与抓包实战:HTTP1协议-请求与响应的上下文(7)
一.请求的上下文: User-Agent 指明客户端的类型信息,服务器可以据此对资源的表述做抉择 二.请求的上下文: Referer 浏览器对来自某一页面的请求自动添加的头部 截图2 这对于我们的防盗 ...
- 重温Http协议--请求报文和响应报文
http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应的内容再通过h ...
- http协议(二)请求和响应报文的构成
http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...
- 老李分享:HTTP协议之请求和响应
老李分享:HTTP协议之请求和响应 HTTP请求头详解: GET http://www.foo.com/ HTTP/1.1 GET是请求方式,请求方式有GET/POST http://www.fo ...
- 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析
[渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...
- HTTP协议简介详解 HTTP协议发展 原理 请求方法 响应状态码 请求头 请求首部 java模拟浏览器客户端服务端
协议简介 协议,自然语言里面就是契约,也是双方或者多方经过协商达成的一致意见; 契约也即类似于合同,自然有甲方123...,乙方123...,哪些能做,哪些不能做; 通信协议,也即是双方通过网络通信必 ...
- Http协议请求头、响应头、响应码
Http部分请求头 Accept 客户机通过这个头,告诉服务器,它支持哪些数据类型 Accept-Charset 客户机通过这个头,告诉服务器,它支持的编码 Accept-Encoding 客户机通过 ...
- 001-http协议-请求报文以及服务器响应状态
Http协议的几个概念: 1.连接(Connection):浏览器和服务器之间传输数据的通道. 一般请求完毕就关闭,http不保持连接.不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就 ...
随机推荐
- bzoj千题计划141:bzoj3532: [Sdoi2014]Lis
http://www.lydsy.com/JudgeOnline/problem.php?id=3532 如果没有字典序的限制,那么DP拆点最小割即可 加上字典序的限制: 按c从小到大枚举最小割边集中 ...
- ansible安装后运行报错cryptography
[root@kazihuo ~]# ansible all -m ping ERROR! Unexpected Exception, this is probably a bug: (cryptogr ...
- HTML中添加<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
https://www.cnblogs.com/nxl0908/p/7245837.html Edge模式告诉IE以最高级 模式渲染文档,也就是任何IE版本都以当前版本所支持的最高级标准模式渲染,避免 ...
- Mycat从入门到放弃
https://blog.csdn.net/u013235478/article/details/53178657
- Spring AOP注解为什么失效?90%Java程序员不知道
使用Spring Aop注解的时候,如@Transactional, @Cacheable等注解一般需要在类方法第一个入口的地方加,不然不会生效. 如下面几种场景 1.Controller直接调用Se ...
- [hadoop]mapreduce原理简述
1.用于map的输入,先将输入数据切分成相等的分片,为每一个分片创建一个map worker,这里的切片大小不是随意订的,一般是与HDFS块大小一致,默认是64MB,一个节点上存储输入数据切片的最大s ...
- c++刷题(21/100)树的打印、矩阵覆盖和括号生成
题目一:把二叉树打印成多行 从上到下按层打印二叉树,同一层结点从左至右输出.每一层输出一行. 思路:一开始以为2维的vector可以直接访问,但是试了是不行,会报错,vector在有值之前不能直接访问 ...
- 列表函数&方法
列表(list)的基本操作,方法及属性.
- 正则表达式入门之学习路线&七个问题
由于工作需求,需要使用正则表达式查找满足某种模式的字符串,但因为之前都没有接触过相关内容,最开始的时候看了一些已经被别人写好了的正则表达式,本来打算可能可以直接使用: 最全的常用正则表达式大全——包括 ...
- 如何在ie6/ie7/ie8中实现iframe背景透明
最近做了一个项目,涉及到ie8iframe背景透明的问题,做了老半天,才把它搞定的,现在把我的经历贴出来和大家分享: 众所周知的根据W3C CSS 2.1 规范规定,''''background-co ...