首页 技术 正文
技术 2022年11月21日
0 收藏 446 点赞 4,104 浏览 1697 个字

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

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

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

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

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

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

http之抽丝剥茧,深度剖析http的那些事儿

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

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

http之抽丝剥茧,深度剖析http的那些事儿

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

http之抽丝剥茧,深度剖析http的那些事儿

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

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

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

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

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

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

http之抽丝剥茧,深度剖析http的那些事儿

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

http之抽丝剥茧,深度剖析http的那些事儿

四、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的那些事儿

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

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,994
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,507
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,350
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,135
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,768
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,845