深入分析Http协议
来源:互联网 发布:新开的淘宝店怎么找货 编辑:程序博客网 时间:2024/05/22 01:02
基本介绍
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。
HTTP是一个应用层协议,通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。
HTTP是一个无状态的协议。http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。 为了解决这个问题, Web程序引入了Cookie机制来维护状态.
HTTP消息的结构
request
如图所示,请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,图中是一个Get请求,常用的还有POST请求,下图是一个POST请求的request格式
关于请求头的详细信息,下文给出链接
在POST请求中,请求体主要是一些参数
response
HTTP响应报文与HTTP请求报文是对应的,也是分为三个部分。
1、响应行
2、响应头
3、响应体
响应行,也称之为状态行(status line)通过提供一个状态码来说明所请求的资源情况。
状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
- 1xx:指示信息--表示请求已接收,继续处理。
- 2xx:成功--表示请求已被成功接收、理解、接受。
- 3xx:重定向--要完成请求必须进行更进一步的操作。
- 4xx:客户端错误--请求有语法错误或请求无法实现。
- 5xx:服务器端错误--服务器未能实现合法的请求。
关于响应头的详细信息,下文给出链接
HTTP响应头和请求头信息对照表
一些重要的头信息
在http1.1,request和reponse头中都有可能出现一个connection的头,此header的含义是当client和server通信时对于长链接如何进行处理。
在http1.1中,client和server都是默认对方支持长链接的, 如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close。不论request还是response的header中包含了值为close的connection,都表明当前正在使用的tcp链接在当天请求处理完毕后会被断掉。以后client再进行新的请求时就必须创建新的tcp链接了。
- 深入分析Http协议
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- [转]深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- 深入理解HTTP协议、HTTP协议原理分析
- poj3522 Slim Span
- 使用Geth1.6搭建私有链
- zookeeper安装
- weka实际操作--构建分类、回归模型
- 随笔
- 深入分析Http协议
- java 实现二分查找法
- 常用命令
- 【Android】Fragment+Viewpager实现底部导航栏(带小红点)
- 安全技术网站+开源网址
- CMS 垃圾回收
- 任意进制转换 python实现
- quartz springh和 spring-task 定时任务
- android下pthread相关概念理解