一、一个完整的HTTP请求,通常有7个步骤:

1、建立TCP连接;

2、web浏览器向web服务器发送请求命令;

3、浏览器发送请求头信息;

4、服务器应答;

5、服务器发送应答头信息;

6、服务器向浏览器发送数据;

7、服务器关闭TCP连接。

二、一个HTTP请求由四部分组成:

1、HTTP请求方法或动作,如:GET或POST;

2、正在请求的URL;

3、请求头,包含一些客户端环境信息、身份验证信息;

4、请求体,即请求正文,可包含提交的查询字符串信息、表单信息等。

三、一个HTTP响应一般由三个部分组成:

1、一个数字和文字组成的状态码,用来显示请求成功还是失败;

2、响应头,包含许多有用的信息,如:服务器类型、日期时间、内容类型和长度;

3、响应体,即响应正文。

四、readyState属性(返回请求的当前状态):

0:请求未初始化,open还没有调用;

1:服务器连接已建立,open已经调用;

2:请求已接收,即,接收到头部信息了;

3:请求处理中,即,接收到响应体了;

4:请求已完成,且响应已就绪,即,响应完成了。

五、HTTP状态码(返回请求结果)由3位数字构成:

1XX:信息性状态码,接收的请求正在处理;

2XX:成功状态码,请求正常处理完毕;

3XX:重定向状态码,需要进行附加操作已完成请求;

4XX:客户端错误状态码,服务器无法处理请求;

5XX:服务器错误状态码,服务器处理请求出错。

六、TCP三次握手、四次回收策略(TCP的标志为:SYN/ACK)

1、三次握手

(1)发送端-------数据包(SYN)------------->接收端

(2)接收端--------------数据包(SYN/ACK)------>发送端

(3)发送端-------数据包(ACK)------------->接收端

2、四次挥手

(1)主动关闭方------TIN(关闭数据传送)----------------->被动关闭方;

(2)被动关闭方------------ACK(确认序号为收到序号+1)-------------->主动关闭方;

(3)被动关闭方------------FIN(关闭数据传送)---------------------->主动关闭方;

(4)主动关闭方------ACK(确认序号为收到序号+1)---------->被动关闭方。

HTTP请求过程(http是一种无状态协议,即不建立持久的连接)的更多相关文章

  1. Flask基础(10)-->http的无状态协议解决办法一(客户端cookie)

    http的无状态协议 http是一种无状态协议,浏览器请求服务器时无状态的 什么是无状态? 无状态:指的是一次用户请求时,浏览器.服务器无法知道之前这个用户做过什么,每次请求都是一次新的请求. 无状态 ...

  2. HTTP协议是无状态协议,怎么理解?

     Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的全部信息外,该环境不保存与会话有关的不论什么信息. 自己的理解,在 ...

  3. HTTP协议是无状态协议,怎么理解

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp24 HTTP协议是无状态协议,怎么理解?  2010-02-23 09:4 ...

  4. HTTP无状态协议

    http://baike.baidu.com/view/4551466.htm HTTP协议是无状态协议. 无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重 ...

  5. HTTP无状态协议理解

    TTP协议是无状态协议. 无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大.另一方面,在服务器不需要先前信息时它的应 ...

  6. 《图解HTTP》读书笔记(三:无状态协议/cookie管理状态)

    HTTP是一种不保存状态,即无状态(stateless)协议.HTTP协议自身不对请求和响应之间的通信状态进行保存. ——HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Co ...

  7. http无状态协议,cookie和session详解(一)

    1.HTTP无状态协议 首先看百度百科给出的定义: HTTP无状态协议,是指协议对于事务处理没有记忆能力.缺少状态意味着如果后续处理需要前面的信息,则它必须重传, 这样导致可能每次连接传送的数据量增大 ...

  8. HTTP——无状态协议理解

    无状态服务器是指一种把每个请求作为与之前任何请求都无关的独立的事务的服务器. HTTP是一个属于应用层的面向对象的协议 ------未完待续

  9. 2019.3.26 为什么说HTTP是无状态协议/无连接

    无状态 1.协议对于事务处理没有记忆能力 2.对同一个url请求没有上下文关系 3.每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求时无直接关系的,它不会受前面的请求应答情况直接影响, ...

随机推荐

  1. Python二维数据分析

    一.numpy二维数组 1.声明 import numpy as np #每一个[]代表一行 ridership = np.array([ [ 0, 0, 2, 5, 0], [1478, 3877, ...

  2. eslint使用

    参考文档 http://www.cnblogs.com/hahazexia/p/6393212.html http://blog.guowenfh.com/2016/08/07/ESLint-Rule ...

  3. ASP.NET没有魔法——ASP.NET MVC 与数据库之MySQL&EF

    本章将介绍如何通过Entity Framework来使用My SQL,之前介绍EF时介绍了provider这个配置项,而且也介绍了在ASP.NET访问MySQL数据仍然是通过ADO.NET,不同的地方 ...

  4. bootstrap 轮播模板

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. [js高手之路]匀速运动与实例实战(侧边栏,淡入淡出)

    javascript中,如何让一个元素(比如div)运动起来呢? 设置基本的样式,一定要让div有定位( 当然用margin的变化也可以让元素产生运动效果 ); <style> div { ...

  6. SSH/HTTPS安全的本质都依赖于TLS/SSL

    1.SSH/HTTPS的安全本质是TLS/SSL. 2.1990年互联网上的网页主要是静态内容,作为信息发布,使用HTTP明文传输是可以的.不过,后来很多公司开始使用网页进行金融交易,例如:股票,于是 ...

  7. 二:Linux 的基本命令、VI编辑器、Linux中软件安装

    Linux 的基本命令 1. 文件操作 a) Windows 是多根的文件系统,物理上是 1 到多块硬盘,逻辑上分为 C.D.E--盘, 每个盘都是一棵树.Linux 是单根的文件系统,不分 CDE ...

  8. 如何让vim像IDE一样一键放大缩小字号?

    原创,转载请注明出处 在其他IDE中,比如codeblocks,按住ctrl,然后滑动鼠标滚轮就可以实现字体的放大缩小. 在强大的vim中code怎么能缺少这种功能?! 在vim插件库中查询一番,发现 ...

  9. redis数据类型和应用场景

    Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings.map. list ...

  10. 【转】浅谈UML的概念和模型之UML九种图

    原文地址:浅谈UML的概念和模型之UML九种图 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的 ...