HTTP协议学习笔记
来源:互联网 发布:淘宝麦麦网 编辑:程序博客网 时间:2024/06/07 03:53
1. HTTP简介
超文本传输协议(HyperText Transfer Protocol,即HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)
2.HTTP版本
HTTP/0.9
已过时。只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头。由于该版本不支持POST方法,因此客户端无法向服务器传递太多信息。
HTTP/1.0
1996年5月,HTTP/1.0 版本发布可以传输文字,还能传输图像、视频、二进制文件除了GET命令,还引入了POST命令和HEAD命令HTTP请求和回应的格式也变了。除了数据部分,每次通信都必须包括头信息(HTTP header),用来描述一些元数据。其他的新增功能还包括状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等
HTTP/1.1
1997年1月,HTTP/1.1 版本发布,只比 1.0 版本晚了半年。它进一步完善了 HTTP 协议,一直用到了20年后的今天,直到现在还是最流行的版本。默认采用持久连接,并能很好地配合代理服务器工作。支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度。新增了许多方法:PUT、PATCH、HEAD、 OPTIONS、DELETE。
HTTP/2
当前版本,于2015年5月作为互联网标准正式发布
3.HTTP请求
HTTP请求信息由3部分组成:
请求行
请求行包括:请求方法 请求URI 协议/版本GET /blog/2016/08/http.html HTTP/1.1
请求头
Host: www.ruanyifeng.comConnection: keep-aliveCache-Control: max-age=0Accept: text/html,Accept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.8
请求正文(可选)
当遇到连续两个\r\n时,请求头部结束,后面的数据全部是请求正文eg:username=jinqiao&password=1234
4.HTTP响应
HTTP响应信息由3部分组成:
状态行
HTTP/1.1 200 OK
消息报头
Date: Sat, 14 Oct 2017 05:02:45 GMTServer: ApacheLast-Modified: Fri, 13 Oct 2017 08:01:00 GMTETag: "17923-55b690eb52700-gzip"Accept-Ranges: bytesVary: Accept-EncodingContent-Encoding: gzipContent-Length: 26949Keep-Alive: timeout=5, max=100Connection: Keep-AliveContent-Type: text/html
响应正文(可选)
<DOCTYPE html><html> <head> <title>demo</title> </head> <body> <p>this is a demo</p </body></html>
5.请求方法
GET
向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,
HEAD
与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
POST
向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。
PUT
向指定资源位置上传其最新内容。
DELETE
请求服务器删除Request-URI所标识的资源。
TRACE
回显服务器收到的请求,主要用于测试或诊断
OPTIONS
这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。
CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)
6.请求头部
7.状态码
第一个数字有五种可能的取值:
- 1xx: 指示信息—表示请求已接收,继续处理。
- 2xx: 成功—表示请求已经被成功接收、理解、接受。
- 3xx: 重定向—要完成请求必须进行更进一步的操作。
- 4xx: 客户端错误—请求有语法错误或请求无法实现。
- 5xx: 服务器端错误—服务器未能实现合法的请求。
具体状态码
参考文章
https://zh.wikipedia.org/wiki/%E8%B6%85%E6%96%87%E6%9C%AC%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE
http://www.ruanyifeng.com/blog/2016/08/http.html
http://blog.csdn.net/zhangliang_571/article/details/23508953
https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386832653051fd44e44e4f9e4ed08f3e5a5ab550358d000
阅读全文
0 0
- HTTP协议学习笔记
- http协议学习笔记
- Http协议学习笔记
- http协议学习笔记
- HTTP协议学习笔记
- 学习笔记,HTTP协议
- Http协议----学习笔记
- http协议学习笔记
- HTTP协议学习笔记
- HTTP协议学习笔记
- Http协议学习笔记
- http协议学习笔记
- Http协议学习笔记
- Http协议学习笔记
- HTTP协议--学习笔记
- HTTP协议学习笔记
- Http协议学习笔记
- Http协议学习笔记
- 【QT】对象模型(对象树)
- HDU
- 阿里iconfont官网提供的矢量图标用法介绍
- 网狐荣耀版棋牌中心服务器显示“服务启动失败”的原因
- 运维之系统服务篇------2.linux扩展应用 、 vim编辑技巧 、 发布网络YUM源 、 源码编译安装
- HTTP协议学习笔记
- Linux常用操作命令(一)
- 高性能服务器开发复习
- 有恒事竟成
- HDU
- Weblogic控制台忘记密码问题解决方法
- js伪类的css修改方法
- Struts2-day01 环境搭建 源码导入 配置文件 默认action,method 详解Action 封装数据的方式
- HDU 1003 B