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
转载于:https://www.cnblogs.com/donizzh/p/4594921.html
HTTP协议--请求与响应相关推荐
- JavaWeb | HTTP 协议请求与响应格式
一.HTTP 是什么 计算机网络核心概念:网络协议 网络协议种类非常多,其中一些耳熟能详的,IP,TCP,UD- 其中还有一个应用非常广泛的协议HTTP,HTTP 协议大概率是咱们日后开发中用的最多的 ...
- HTTP协议请求类型响应简介
HTTP协议的8种请求类型介绍 GET: 请求指定的页面信息,并返回实体主体. HEAD: 只请求页面的首部. POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体. PUT: 从 ...
- 应用服务器与WSGI协议以及flask后端框架总结(后端接收请求返回响应的整个流程)...
上次遗留了两个问题,先说一下自己的看法 问题: 1.明明一个线程只能处理一个请求,那么栈里的元素永远是在栈顶,那为什么需要用栈这个结构?用普通变量不行吗. 2._request_ctx_stack和_ ...
- 老李分享:HTTP协议之请求和响应
老李分享:HTTP协议之请求和响应 HTTP请求头详解: GET http://www.foo.com/ HTTP/1.1 GET是请求方式,请求方式有GET/POST http://www.foo. ...
- 创建web服务器||HTTP协议的概念||报文||HTTP请求与响应处理——未完待续
HTTP协议的概念 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)规定了如何从网站服务器传输超文本到本地浏览器, 它基于客户端服务器架构工作,是客户端( ...
- HTTP协议(5)HTTP请求和响应
之前曾介绍过,所有的HTTP通信都被构造成一对HTTP请求和HTTP响应,HTTP协议的请求与响应报文都是由"首部header"和"主体body"两部分组成的. ...
- http协议下:为什么请求与响应会做到准确误的对应。不会出现请求与响应的错乱...
互联网通信是套接字进行通信的,套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程. ...
- android http请求缓存,Android Http请求和响应使用协议缓冲区
我对协议缓冲区主题非常陌生. 但我知道json解析等等 现在,我实际上正在此协议缓冲区上工作,我正在制作一个使用带有协议缓冲区的android进行Http请求和响应的应用程序. 我正在使用androi ...
- Http协议的请求和响应
1.HTTP协议介绍 HTTP(HyperTextTransferProtocol):超文本传输协议. HTTP协议是基于TCP/IP协议的. 基于请求/响应模型的: 一次请求对应一次响应. 传输协议 ...
- web-http协议-请求协议-响应协议
http概述 = 理解,什么是无状态的协议 通过抓包的方式,关注,请求的发生 = 重点,关注这样的词 请求,响应 请求协议 >看请求头 查看网络请求,详细了解内容 accept,接受 浏览器,告 ...
最新文章
- 你想知道的“ROC曲线”
- ble串口程序设计流程图_流程图程序设计的步骤
- HALCON识别数字ID
- Python-decorator装饰器小结
- Incorrect column count: expected 1, actual 5,JdbcTemplate queryForList 出错
- [ Android 五种数据存储方式之二 ] —— 文件存储数据
- c语言六套,C语言编程笔试题(第六套)
- 盗COOKIE之方法总结
- 告别花瓶:2015年智能电视路在何方?
- Teams Bot如何做全球化
- 一个文章表的 MySQL 索引怎么建立合理
- 如何入门 Python 爬虫?
- html图片上传阅览并且点击放大
- 全自动备份vss和sql数据库(含源码下载)
- numpy实用技巧(二)
- 飞机遭遇时空乱流离奇穿越到30年前
- 暗黑复制服务器物品,暗黑2战网环境下复制dupe物品装备
- 怎么用Goldwave剪辑音乐?GoldWave绿色汉化版使用教程分享
- Qt自定义对话框及调用方法
- 什么是SVG?及SVG引入方式
热门文章
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-1.数据信息安全--微信授权一键登录功能介绍...
- [翻译]架构师应该知道的97件事_03关键问题可能不是出在技术上
- jQuery基础--选择器
- Linux 线程调度与优先级
- oracle之三 自动任务调度
- 编译Libgdiplus遇到的问题
- [LeetCode#81]Search in Rotated Sorted Array II
- namenode 无法启动之每次开机需要重新格式化-tmp
- .net(偏web) vs j2ee的一些框架选型
- 下载安装Redis+使用