HTTP请求流程

Posted cuteerha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTTP请求流程相关的知识,希望对你有一定的参考价值。

wen2.0时代到来,互联网从C/S架构转变为B/S架构
B/S即浏览器/服务器结构
web请求,基于统一的应用层协议(HTTP协议)交互数据
HTTP,即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,是万维网基础,它允许将html(超文本标记语言)文档从web服务器传送到web浏览器
发起HTTP请求:在浏览器地址栏中输入一个URL,并回车
借助工具发起HTTP请求:Linux系统的curl命令,windows系统的curl.exe 通过curl+URL,可以查看访问URL后服务器返回的HTTP响应头
浏览器在HTTP协议方面只不过多了HTML渲染的功能
URL:统一资源定位符,也称网页地址,是互联网标准的地址
URL标准格式:协议://www.xxser.com/post/httpxieyi.html
HTTP协议详解:
HTTP协议目前版本1.1
HTTP是一种无状态的协议,无状态是指web服务器与web浏览器之间不需要建立持久的连接,在服务器端不保留连接的有关信息,HTTP请求只能由客户端发起而服务器不能主动向客户端发送数据
HTTP遵循请求/应答模型
HTTP请求:包括三部分:请求行(请求方法)、请求头(消息报头)、请求正文
一个例子:
POST /login.php HTTP/1.1//请求行
HOST: www.xxser.com//请求头
User-Agent: Mozilla/5.0(Windows NT 6.1 ;rv:15.0) Gecko/20100101 Firefox/15.0 
              //空白行,代表请求头结束
username=admin&password=admin//请求正文
请求行有三部分:POST请求,斜杠用来说明请求的是该域名根目录下的login.php,最后说明HTTP是1.1版本
第二行到空白行是请求头也称消息头,HOST代表请求的主机地址,User-Agent代表浏览器标识,请求头由客户端自行设定
最后一行为请求正文,请求正文可选 
HTTP响应 
三部分:响应行、响应头、响应正文 
第一行响应行:有HTTP版本,状态码,消息 
第二行到末尾空白行为响应头:服务器向客户端发送 
最后是响应正文:服务器向客户端发送的HTML数据
HTTP请求方法:
(1)GET:用于获取请求页面的指定信息,以实体的格式,发送数据有大小长度的限制,并且会将发送的数据显示在浏览器端
如果请求资源为动态脚本(非HTML),那么返回文本是web容器解析后的HTML源代码,而不是源文件
请求参数:id 选择性接受参数,一般由开发者内定好的参数项目才会接收
(2)HEAD:除了服务器不能在响应里返回消息主体外,其他同GET
常用来测试超文本链接的有效性、可访问性和最近的改变,测试资源是否存在
(3)POST:与GET相似,但GET方法没有请求内容,而POAT是有请求内容的 
最多用于向服务器发送大量数据,数据不显示在浏览器端,安全性相对高一些 
例如:上传文件,提交留言 
(4)PUT:用于请求服务器把请求中的实体存储在请求资源下,如果请求资源已经在服务器中存在,那就会替换原先的数据,作为指定资源的最新修改版,如果请求的指定资源不存在,将会创建这个资源,且数据位请求正文 
通常情况下,服务器会关闭PUT方法,因为它会为服务器建立文件,属于危险的方法之一 
(5)DELETE:用于请求服务器删除请求的指定的资源,通常服务器会关闭这种方法,因为客户端可以进行删除文件操作,属于危险方法之一 
(6)TRACE:用于激发一个远程的应用层的请求消息回路,回显服务器收到的请求,此方法允许客户端去了解数据被请求链的另一端接受的情况,并且利用那些数据进行测试或诊断 
(7)CONNECT:用于动态切换到隧道的代理 (8)OPTIONS:用于请求获得由URL标识的资源在请求响应的通信过程中可以使用的功能选项 .客户端可以在采取具体资源请求之前,决定对该资源采取何种必要措施,或者了解服务器的性能

以上是关于HTTP请求流程的主要内容,如果未能解决你的问题,请参考以下文章

NGINX HTTP请求处理流程

http请求生命周期流程

Liberty nova-api HTTP请求执行流程

HTTP请求流程

续HTTP请求流程

HTTP 协议的基本知识,包括请求流程请求方法等