最近,小编一心扎跟学技术,毫不顾及头发的掉落速度,都快成地中海了,不过也无大碍,谁让咱是一个爱钻技术的男人呢。最近两周老是看到http,那么这个http,有哪些猫腻呢,很多同学都有这种理解,就是对于http,只能意会不能言传,或者只能说出其中一两点,这很一个it从业者甚是很烦啊,所以,小编不才,接下来为大家深度剖析。

一、http是什么?用来干嘛的?

http,全称:超文本传输协议,官方定义:http是一个简单的请求-响应协议,也是应用最为广泛的一种网络传输协议。

作用:用来传输数据的,再详细点讲,是基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)

二、http消息结构是怎样的?

HTTP是基于客户端/服务端(C/S)的架构模型,客户端请求消息---------------------》服务器响应消息

客户端和服务端怎么理解呢?这里给大家讲解通俗一点,好比咱们进百度网站,打开任何一个web浏览器,直接输入http://www.baidu.com  ,咱们把这个发送过去,拿咱们的这个浏览器就好比是客户端。服务端呢,你可以这样理解,就是百度的后台,我们发送请求过去,它那边会有响应,不管响应成不成功都会给咱们返回一个信号,让我们知道是不是请求成功了。

客户端一般包括以下格式: 请求行 、请求头  、空行、   请求数据   一共四部分,图来说明一切

服务端也有四部分:状态行、 消息报头 、空行 、响应正文,下面直接上样例:

记住,各位同学,千万别搞混淆了,客户端和服务端是有区别的,不是一样的,千万别以为这两者的消息结果一样(要不是写这个帖子,我以前还真没发现,各位请您多担待!)

三、http靠什么请求,有哪些请求方法?

在以前,一般都是http1.0版本,但是现在大部分都是http1.1版本(最新标准)

HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法

HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法

至于这九种方法,我就不一一介绍了,小编我的水平也是一般般,顶多算个it爱好者,喜欢掰碎一些东西仅此而已,请各位看官谅解,找了资料,直接上一张图

既然说到这,那我就不得不提一句,很多面试官都会问的一个问题:get与post的区别,这里顺便为大家解释一番

四、http状态码

当我们访问一个网站时,我们使用的浏览器会向访问的网站发出请求,然后,该网站所在的服务器会返回一个http状态码的信息头,用来表示响应咱们发过去的请求

所以,我们要记住常见的http状态码,说不定在我们的工作中偶尔会用的到

1开头: 信息状态码

2开头:成功状态码

3开头:重定向状态码

4开头:客户端错误状态码

5开头:服务端错误状态码

以下仅仅列举出常见的,至于最全的状态码,给大家发链接去查找:https://www.runoob.com/http/http-status-codes.html

100:    继续             初始的请求已经接受,请客户端继续发送剩余部分

200:    成功             请求成功,服务器已成功处理了请求

301:  永久移动        请求的页面已永久跳转到新的url

400:  错误请求        服务器不理解请求的语法

403:    禁止             服务器拒绝请求

404:   未找到           服务器找不到请求的页面

500:   服务器错误    服务器内部错误,无法完成请求

502:   错误网关        服务器作为网关或代理出现错误

504:   网关超时        网关或代理服务器,未及时获取请求

五、http与https有什么区别呢?

http:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端的请求与应答的标准(TCP),使浏览器更加高效、使网络传输减少

https:是以安全为目标的http通道,简单来讲就是http的安全版,即HTTP下加入SSL层,HTTPS的安全基础是 SSL,因此加密的详细内容就需要SSL

数据加密传输,是HTTP和HTTPS之间的本质性区别

转载须注明出处,毕竟本着资源共享的心态,谢谢合作!!!

http之抽丝剥茧,深度剖析http的那些事儿的更多相关文章

  1. 《AngularJS深度剖析与最佳实践》简介

    由于年末将至,前阵子一直忙于工作的事务,不得已暂停了微信订阅号的更新,我将会在后续的时间里尽快的继续为大家推送更多的博文.毕竟一个人的力量微薄,精力有限,希望大家能理解,仍然能一如既往的关注和支持sh ...

  2. ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程

    从<ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求>我们知道ASP.NET Core请求处理管道由一个服务器和一组有序的中间件组成,所以从总体设计来讲是非常简单的,但 ...

  3. Objective-C类成员变量深度剖析

    目录 Non Fragile ivars 为什么Non Fragile ivars很关键 如何寻址类成员变量 真正的“如何寻址类成员变量” Non Fragile ivars布局调整 为什么Objec ...

  4. 大众点评开源分布式监控平台 CAT 深度剖析

    一.CAT介绍 CAT系统原型和理念来源于eBay的CAL的系统,CAT系统第一代设计者吴其敏在eBay工作长达十几年,对CAL系统有深刻的理解.CAT不仅增强了CAL系统核心模型,还添加了更丰富的报 ...

  5. 深度剖析WordPress主题结构(转)

    利用强大的技术,可以把基于wordpress的网站做成各种各样的形式,这除了要求wordpress主题开发人员精通html,PHP,JS,CSS等技术,还需要开发者掌握WordPress主题的框架. ...

  6. LCD深度剖析

    LCD 深度剖析 来源:http://blog.csdn.net/hardy_2009/article/details/6922900 http://blog.csdn.net/jaylondon/a ...

  7. WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇)

    原文:WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(下篇) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话 ...

  8. 大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网

    大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网 大兴雷克萨斯深度剖析2013款LS460L

  9. Java反射机制剖析(四)-深度剖析动态代理原理及总结

    动态代理类原理(示例代码参见java反射机制剖析(三)) a)  理解上面的动态代理示例流程 a)  理解上面的动态代理示例流程 b)  代理接口实现类源代码剖析 咱们一起来剖析一下代理实现类($Pr ...

随机推荐

  1. [日志分析]Graylog2采集Nginx日志 被动方式

    graylog可以通过两种方式采集nginx日志,一种是通过Graylog Collector Sidecar进行采集(主动方式),另外是通过修改nginx配置文件的方式进行收集(被动方式). 这次说 ...

  2. 利用java编写物品的品牌、尺寸、价格、库存(新手)

    //定义一个类 public class NV{ //公共静态的主方法 public static void main(String[] args){ //打印 “京东三九女神节” 标题 System ...

  3. mysql锁机制和事务隔离

    mysql事务 1.InnoDB事务原理 事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致性状态转换为另一种一致性状态. 在数据库提交时,可以确保要么所有修 ...

  4. Who Gets the Most Candies? POJ - 2886(线段树单点更新+区间查询+反素数)

    预备知识:反素数解析 思路:有了反素数的解法之后就是线段树的事了. 我们可以用线段树来维护哪些人被淘汰,哪些人没被淘汰,被淘汰的人的位置,没被淘汰的人的位置. 我们可以把所有人表示为一个[1,n]的区 ...

  5. 【简说Python WEB】Web应用部署

    目录 [简说Python WEB]Web应用部署 应用层 缓存层 数据层 Gunicorn 的应用 1.安装Gunicorn 2.Gunicorn的启动 Nginx 的应用 1.docker方式部署安 ...

  6. [字典树,trie树] 树之呼吸-肆之型-前缀统计

    D.树之呼吸-肆之型-前缀统计 Time Limit: 1000 MS Memory Limit: 65536 K Total Submit: 59 (8 users) Total Accepted: ...

  7. mysql数据库中的mybatis中xml解决in不起作用的问题

    在sql语句中,某个字段进行in条件的时候,不起作用, 但是执行语句查询为null数据,但是根据表中数据来看是不可能有null数据的可能性的,所以不知道什么原因导致数据出不来 我因此想到以下解决办法来 ...

  8. OpenCV-Python 交互式前景提取使用GrabCut算法 | 三十五

    目标 在本章中, 我们将看到GrabCut算法来提取图像中的前景 我们将为此创建一个交互式应用程序. 理论 GrabCut算法由英国微软研究院的Carsten Rother,Vladimir Kolm ...

  9. 10行Python代码计算汽车数量

    当你还是个孩子坐车旅行的时候,你玩过数经过的汽车的数目的游戏吗? 在这篇文章中,我将教你如何使用10行Python代码构建自己的汽车计数程序. 以下是环境及相应的版本库: Python版本 3.6.9 ...

  10. coding++:win10家庭版升级专业版方案

    win10家庭版升级专业版密钥: VK7JG-NPHTM-C97JM-9MPGT-3V66T 4N7JM-CV98F-WY9XX-9D8CF-369TT FMPND-XFTD4-67FJC-HDR8C ...