浅析HTTP协议
定义
http是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。相关知识点:URI\Request\Response\状态码
请求消息Request
http请求由三部分组成,分别是:请求行、消息报头(请求头Header)、请求正文(Body)
- 请求行:请求方法(GET\POST\HEAD\PUT\DELETE)、URL、HTTP版本
- 请求头:请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息
- 请求正文:请求数据也叫主体,可以添加任意的其他数据
响应消息Response
HTTP响应也是由三个部分组成,分别是:状态行、消息报头、响应正文
- 状态行:由HTTP协议版本号, 状态码, 状态消息 三部分组成。
- 消息报头:用来说明客户端要使用的一些附加信息
- 响应正文:服务器返回给客户端的文本信息。
状态码
- 1xx:指示信息–表示请求已接收,继续处理
- 2xx:成功–表示请求已被成功接收、理解、接受
- 3xx:重定向–要完成请求必须进行更进一步的操作
- 4xx:客户端错误–请求有语法错误或请求无法实现
- 5xx:服务器端错误–服务器未能实现合法的请求
HTTP请求方法
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
- GET:请求指定的页面信息,并返回实体主体。
- HEAD:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
- POST:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
- PUT:从客户端向服务器传送的数据取代指定的文档的内容。
- DELETE:请求服务器删除指定的页面。
- CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
- OPTIONS:允许客户端查看服务器的性能。
- TRACE:回显服务器收到的请求,主要用于测试或诊断。
HTTP工作原理
- 客户端连接到Web服务器
- 发送HTTP请求
- 服务器接受请求并返回HTTP响应
- 释放连接TCP连接
- 客户端浏览器解析HTML内容
GET和POST请求的区别
- GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的数据放在HTTP包的Body中.
- 传输数据的大小
- 安全性