浅谈HTTP与其工作流程

一、什么是HTTP协议

HTTP协议(Hyper Text Transfer Protocol)翻译过来是超文本传输协议,也是一种restful风格的协议,在web开发和APP接口开发都很常用。

HTTP协议是应用层协议,同样是应用层协议的还有FTP,MQTT,SMAP等,但总结来说都是基于TCP/IP之上传输,应用层的协议可以理解为根据不同的协议传输不同格式的字节。

比如以下是一个HTTP协议报文

那么在应用层的报文就是

01001000 01010100 01010100 01010000 ...

翻译过来就是 HTTP ...,应为01001000对应的就是H,01010100对应的是T

所以http请求与响应可以理解为是字符串的交流,相对来说,HTTP是一种比较重的协议,所以在一些网络受限的情况下不建议使用该协议,可以根据需求设计出更符合业务的

协议,可以比较好的减轻对带宽的压力。

二、HTTP的工作流程

1.通过DNS服务器将域名解析为IP地址

(1)查找本机hosts文件的是否有该域名的映射关系,有则直接使用该映射关系对应的ip地址

(2)从DNS缓存中查找该域名的映射关系,有则直接使用

(3)当缓存没有该域名的映射关系,则需要访问外网的DNS服务器来解析域名

2.知道目标服务器的ip地址和域名后就可以进行tcp的三次握手建立连接

3.建立连接之后根据需求在应用层封装http请求报文发送到目的服务器

4.目的服务器收到请求之后进行业务处理,然后返回响应报文

三、HTTP协议常用请求头和响应头

1.常用请求头

Accept-Charset 用于指定客户端接受的字符集

Accept-Encoding 可接受的内容编码

Keep-Alive 是否关闭连接

Content-Type 这是在开发中经常使用的,用于定义媒体类型,即你的请求体内容是如何存放的,在开发APP接口时,需要在接口文档注明媒体类型,否则APP可能会发送服务器不接受的媒体类型

2.常用响应头

Content-Type 告诉服务端响应内容的类型,客户端可以根据类型进行不同解析,比如客户端浏览器,那么常用的就是 Content-Type:text/html:Charset=UTF-8

原文地址:https://www.cnblogs.com/xiguadadage/p/10306926.html

时间: 2024-10-14 16:49:21

浅谈HTTP与其工作流程的相关文章

Flask解读 --- 浅谈Flask基本工作流程_1

网站写了蛮长时间了,一直想具体分析分析Flask的运行机制,但是源码看得断断续续,不过最近状态不错,进度上来了点,这里先新建一个类别,专门来说说Flask和源码有关系的内容, 这篇准备粗略说一下应用Flask框架的时候,从HTTP请求开始到响应的流程 前置技能   ---   WSGI 在具体读源码之前,这里先需要说一个概念,什么是WSGI. WSGI,全称 Web Server Gateway Interface,或者 Python Web Server Gateway Interface ,

[转自SA]浅谈nginx的工作原理和使用

nginx apache 简单对比 nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而 apache 则是阻塞型的,在高并发下 nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃 配置简洁 apache 相对nginx 的优点: rewrite ,比 nginx 的 rewrite 强大 模块超多 少 bug ,nginx 的 bug 相对较多 超稳定 配置复杂

浅谈软件销售工作

自技术领域转做销售有几年了.由于长期耕耘在技术领域,对于销售的角色进入有点晚,只是近期几年也逐渐的摸出些门道,而且按照这些门道来指导团队的实践,确实可以看到比較可喜的进步,在此总结一下.跟大家一起分享一下. 销售分为例如以下三种类型:1. 技术型销售.典型特征是逢人必谈技术,对于技术的内因外果非常清楚,当跟客户沟通时特别在技术沟通时,能说会道,涛涛不绝.但一到关系项目譬如玩.喝酒.K歌等表现平平.2. 关系型销售.典型特征是碰到人必称"哥"."老师"."领

TODO:浅谈pm2基本工作原理

要谈Node.js pm2的工作原理,需要先来了解撒旦(Satan)和上帝(God)的关系. 撒旦(Satan),主要指<圣经>中的堕天使(也称堕天使撒旦),他是反叛上帝耶和华的堕天使(Fallen Angels),曾经是上帝座前的天使,后来他因骄傲自大妄想与神同等而堕落成为魔鬼,被看作与上帝的力量相对的邪恶.黑暗之源. 简单的说Satan是破坏神,就是进程的异常退出.kill等:God是守护神,保护进程.重启进程等. 一图胜千言,pm2的 RPC基本框架.Client与Daemon是采用了R

测试浅谈(原则、简单流程)

1.测试的原则:·测试证明软件存在缺陷·不可能执行穷尽测试.·测试应尽早启动.尽早介入·缺陷存在群集现象(二八定律)·杀虫剂悖论·不同的测试活动依赖不同的测试背景·不存在缺陷的谬论 2.测试的流程·1.需求分析·2.测试计划[一般测试组长]·3.用例设计·4.执行用例(基础.基本)·5.缺陷跟踪·6.测试总结[一般测试组长] 测什么?·软件源代码·与软件源代码匹配的文档·支撑软件源代码运行的配置数据·需求阶段-----需求规格说明书·系统设计阶段-----概要设计说明书.详细设计说明书·系统测试

浅谈计算机程序的工作过程

---------------------------------------------------------------------------------------------------------------------------------------- 本文为<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000.第一课课后作业.学生姓名:刘征 本文主要内容是写一个简单的C语言程序,将其转换成汇编代

浅谈JSONP 的工作原理

小编最近在工作中经常用到 jsonp 这个东西, 表示之前从来没用过  最近稍微研究了下 当然很多内容来源于网上 收集整理 你懂的 ~~~ 话说我们访问一个页面的时候 需要像另一个网站获取部分信息, 这就是所谓的跨域请求才能完成的功能, 现实生活中有很多 比如引入外部js, img 等等, 说到发送请求, 在web2.0的时代 我们避免不了 ajax 请求了, 当然我们在 工作中用到 ajax 跨域请求 是必须遇到的,当然ajax 是不支持跨域请求的 说到这里我比较汗颜啊, 当然天无绝人之路,有

浅谈渗透测试方法及流程

1﹑分析目标网站内容及功能 (1)  首先确定网站采用何种语言编写.或者是否有混用的情况.此处可以通过查看网站源文件,观察网站链接,捕获提交请求等方式获取. (2)  爬行网站目录,使用工具对网站目录进行爬行,可以辅助上一步让结果更加精准.将爬行结果存档,如果可以,此处应分析出网站是否使用通用程序,如果是,记录下来.进行下一步. (3)  根据上一步的爬行结果,对网站根目录或者关键目录进行暴力目录探测,如果网站为通用程序,判读是否有过二次开发,如非通用程序,在探测到的目录中寻找关键目录及文件.

浅谈HDFS的读流程

1.使用HDFS提供的客户端Client,向远程的Namenode发起RPC请求: 2.Namenode会视情况返回文件的部分或者全部block列表,对于每个block,Namenode都会返回有该block拷贝的DataNode地址: 3.客户端Client会选取离客户端最近的DataNode来读取block:如果客户端本身就是DataNode,那么将从本地直接获取数据: 4.读取完当前block的数据后,关闭当前的DataNode链接,并为读取下一个block寻找最佳的DataNode: 5