http请求过程

1、浏览器根据访问的域名找到其IP地址。DNS查找过程如下:

1.浏览器缓存:浏览器会缓存DNS记录一段时间。

2.系统缓存:如果在浏览器缓存里没有找到需要的域名,浏览器会查系统缓存中的记录。

3.路由器缓存:如果系统缓存也没找到需要的域名,则会向路由器发送查询请求。

4.ISP DNS缓存:如果依然没找到需要的域名,则最后要查的就是ISP缓存DNS的服务器。或者去根服务器上帮你查询。

2、HTTP请求报文

请求行:是请求消息的第一行,由请求方式(GET/POST/DELETE/PUT)、请求资源路径、协议版本号组成

请求头:请求头中的信息有和缓存相关的头(Cache-Control,If-Modified-Since)、客户端身份信息(User-Agent)等等

空行:最后一个请求头部之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头部。

请求数据:请求数据不在GET方法中使用,而在POST方法中使用。POST方法适用于需要客户填写表单的场合。与请求数据相关的最常使用的请求头部是Content-Type和Content-Length。

3、HTTP响应报文

状态行:由http版本号、状态码、状态说明组成

响应头:响应头是服务器传递给客户端用于说明服务器的一些信息,以及将来继续访问该资源时的策略。

空行:空行表示消息头的内容到此为止,接下来该解析消息

响应数据:就是服务器返回的数据信息

4、HTTP请求过程

1.建立TCP连接

在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80

2.Web浏览器向Web服务器发送请求命令

一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令例如:

3.Web浏览器发送请求头信息

浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

4.Web服务器应答

客户机向服务器发出请求后,服务器会客户机回送应答,HTTP/1.1 200 OK应答的第一部分是协议的版本号和应答状态码

5.Web服务器发送应答头信息

正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

6.Web服务器向浏览器发送数据

Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

7.Web服务器关闭TCP连接

Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了代码Connection:keep-alive,TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/88026

(0)
cuicui
上一篇 2017-10-23 10:35
下一篇 2017-10-23 12:52

相关推荐

  • 磁盘管理及文件系统

    磁盘及文件系统管理初步与进阶(重点内容) 磁盘分区及文件系统 linux系统管理 磁盘分区及文件系统管理:分区工具 linux磁盘及文件系统管理 整个操作系统的硬件组成部分,最底层是硬件设备,计算能力得以运行的最根本的基础。 计算机的五大基本部件:cpu,运算器,控制器被整合到一起,由一个硬件部件来提供。 存储器(主存rom可编址的存储单元)。主板上有cpu…

    Linux干货 2016-08-30
  • grep、正则表达式

    grep、正则表达式 grep:文本过滤(模式:pattern)工具 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查;打印匹配到的行。 模式:由正则表达式字符及文本字符所编写的过滤条件。 正则表达式:由一类特殊字符及文本所编写的模式,其中有些字符不表示字符字面意义,而表示控制或通配的功能。 正则表达式分为两类:基本正则表达式、扩展正则表…

    Linux干货 2017-04-06
  • M20 – 1- 第三周博客(3):Linux中文本处理工具

    1、文件查看查看工具 Linuxzhong存在着很多配置文件以及脚本,那Linux中也自带了查看文本的工具: cat 命令 简介: cat – concatenate files and print on the standard output 格式: cat&nbsp…

    Linux干货 2016-08-07
  • 密钥和公钥

    安全协议和搭建CA

    Linux干货 2018-01-09
  • 命令行历史和调用命令参数

    history显示当前终端的历史记录 !! 重复执行上一条命令 !-n 重复执行倒数第n条命令 !n 重复执行第n条命令 ctrl+p 等于向上方向键,翻出上一条命令。 ctrl+n 等于向下方向键,翻出下一条命令。 ctrl+j 等于enter 执行当前命令 !:0 执行前一条命令(去除参数) !string 重复前一个以“string”开头的命令(只限于…

    2017-07-14
  • Linux基础 sed命令详解

    概述 sed是一个流编辑器(Stream EDitor)。主要用于自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。本文主要讲述了: sed工作原理 sed命令格式及常用选项 应用实例 高级编辑命令 sed工作原理 sed命令运行过程中维护着两个缓冲区,一个是活动的“模式空间(pattern space)”,另一个是起辅助作用的“暂存缓冲区(ho…

    Linux干货 2016-08-12