最近,小编一心扎跟学技术,毫不顾及头发的掉落速度,都快成地中海了,不过也无大碍,谁让咱是一个爱钻技术的男人呢。最近两周老是看到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. Linux启动nginx时报错nginx: [emerg] getpwnam("nginx") failed

    编译时指定了用户而没有创建用户导致报错 解决: 查看你添加的用户是什么, [root@localhost nginx]# sbin/nginx -Vnginx version: nginx/1.10. ...

  2. mybatis返回自增主键踩坑记

    背景 MyBatis 是支持定制化 SQL.存储过程以及高级映射的优秀的持久层框架.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以对配置和原生Map ...

  3. C# 获取系统所有字体

    获取已安装的所有字体列表 System.Drawing.FontFamily StringBuilder str = ); InstalledFontCollection fonts = new In ...

  4. Angular 从入坑到挖坑 - HTTP 请求概览

    一.Overview angular 入坑记录的笔记第四篇,介绍在 angular 中如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互. 对应官方文档地址: Angul ...

  5. ubuntu 远程 window

    记录一下ubuntu 远程 window ubuntu先执行安装rdesktop sudo apt-get install rdesktop 终端执行: rdesktop -f  172.16.238 ...

  6. 原来 CPU 为程序性能优化做了这么多

    本文主要来学习内存屏障和 CPU 缓存知识,以便于我们去了解 CPU 对程序性能优化做了哪些努力. 首先来看下 CPU 缓存: CPU 缓存 CPU 缓存是为了提高程序运行的性能,CPU 在很多处理上 ...

  7. wr720n v4 折腾笔记(二):刷入不死Uboot

    0x01 前言 接着上节刷入Openwrt开始说起,此次开始刷入不死Uboot,刷入之后就可以在Uboot里面随便刷机,再也不怕成砖了. 固件附件地址: 下载地址1(还是之前一的包) flash文件地 ...

  8. 李宏毅老师机器学习课程笔记_ML Lecture 0-2: Why we need to learn machine learning?

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  9. JSP+Servlet+C3P0+Mysql实现的苹果网上商城

    项目简介 项目来源于:https://github.com/gpengDemo/Estore 本系统基于JSP+Servlet+C3P0+Mysql.涉及技术少,易于理解,适合JavaWeb初学者学习 ...

  10. Building Applications with Force.com and VisualForce (DEV401) (二二):Visualforce Componets (Tags) Library Part II

    Dev401-023:Visualforce Pages: Visualforce Componets (Tags) Library Part II   Apex:pageBlockTable1.A ...