最近时不时会看到一些HTTP的帖子,所以自己也写一个,拿来备忘

1. 什么是超文本传输协议

HTTP中文全称就叫“超文本传输协议”
之前一直都是看过就完了,这两天看到几篇文章,详细解释了一下这个名字,所以我也就跟着大概理解了一下。
超文本传输协议,分为三个词:“超文本”,“传输”,“协议”
超文本:互联网初期只能传递文字文本信息,后来加了图片、视频、音频等信息,再后来,里面加了超链接,可以通过超链接跳转,到这里,就已经不是简单地纯文本信息了,语义扩大之后就被称为“超文本”‘。
传输:我通常理解为“寄快递”,只是“寄”的东西是数据,现实生活中是某个物品,这个时候,出来2个概念,一个“请求方”,一个“应答方”
在这里,我们HTTP的请求是参见上网过程,请求百度:请求方发起请求并传递数据,响应方对请求执行并返回数据,这里是一来一回的交互
协议:就是我们之间约定好的一种行为方式。协议也分很多种,我们经常使用的QQ,使用就是QICQ协议,其实就是一种准则,我告诉你,我接受json格式的数据,你给我一个二进制的格式数据,那我就用不了,不知道你想说什么(举例就是我告诉你只会中文,你给我写了一封日文信,我就读不懂)

2、HTTP传输过程

目前我们计算机的数据传输,无论是不是HTTP,还是其他的数据,其实 都要经过分层传递,这就又到了四层模型,五层模型,七层模型了,这里不展开,贴个图,看看就行。

3、浏览器

HTTP请求,常见的使用是浏览器上,这里简单了解一下浏览器的内核。
目前市面上,我们经常看到360浏览器,谷歌浏览器,百度浏览器,搜狗浏览器,火狐浏览器,Safari(苹果系统的浏览器)等等,会看到很多,但是其实很多浏览器,本质上都是使用的别人的内核,他们只是做了优化,如界面、功能增删、响应速度等等。
那么就大概了解一下主流的几款浏览器内核吧。

  • IE
  • Firefox
  • Chrome
  • Safari
  • Opera

4、HTTP状态码

这个地方,作为测试而言,是一个面试的考点吧,还是要知道的
1XX:等待执行,是一种中间状态,实际情况用到的比较少
2XX:请求成功
3XX:重定向
4XX:请求方错误
5XX:服务端错误

5、HTTP几种请求

  • GET
  • POST
  • DELETE
  • PUT
  • HEAD
  • OPTIONS
  • TRACE
  • CONNECT
    一般使用最多的是GET和POST,其次是PUT和DELETE,另外的几个了解即可,此处,我想多提一下GET和POST请求。
    有一个比较常见的问题是:GET和POST的区别。
    在这里,需要了解2个词:安全幂等
    幂等解释一下概念:多次请求,返回相同的值,就是幂等
    get请求是向服务器获取数据,常见的如查询列表的功能
    post是提交一个数据,常见的是登录,编辑等功能
    那么就可以看到:
    GET是“只读”,无论你操作多少次,都不会影响服务器上的数据,而且每次的结果都是相等的,所以GET幂等且安全
    POST,是新增或者提交,那么就会修改服务器上的数据,一般会创建资源(例如新增用户),所以POST不幂等,且不安全

6、HTTP请求常见字段

  • 请求头
    Request URL: url(这个地方还有个延伸:URL和URI,但是 我也没了解,就不写了
    Request Method: 请求方式
    Status Code: 状态码
  • 请求body
    content-length:字节长度
    content-type:用于服务器回应时,告诉客户端,本次数据是什么格式
    date:本次请求的时间
    set-cookie:cookie
    status:状态

7、三次握手和四次挥手

因为HTTP请求是基于TCP传输协议进行传输的(HTTP/3 把 TCPP 层换成了基于 UDP 的 QUIC),所以这个地方延伸一下TCP请求的三次握手和四次挥手,不想详细讲,讲了又有很多东西,贴个图看看吧

  • 三次握手
  • 四次挥手

8、HTTP请求特点

HTTP 最突出的优点是:
简单、灵活和易于扩展、应用广泛和跨平台

  • 简单:
    结构就是header+body
    参数就是key:value
  • 灵活和易于扩展
    从HTTP本身来说,开发人员可以自行添加数据,状态码,字段都没有固定死
    从结构上来说,HTTP在应用层,那么下层可以 随意变动
  • 应用广泛和跨平台
    用户端有web,app,手机网页,等等
    广泛的跨平台

缺点:
无状态和不安全

  • 无状态
    无状态的好处就是减少资源,毕竟你要存储状态也是需要字段的
    无状态的缺点就是需要验证身份的操作,你需要无限循环登录
    解决这个问题,我们增加了cookie
  • 不安全
    因为HTTP是明文传输(抓包是能看到你传输的信息的)那么就导致不安全
    解决这个问题,我们增加了HTTPS

9、HTTPS

因为HTTP的不安全性,导致后续出现一个HTTPS
HTTPS = HTTP + SSL
那么问题来了,HTTPS和HTTP请求的区别是什么?

  • 安全性
    HTTP请求是明文的
    HTTPS进行了SSL加密
  • 连接建立
    HTTP直接进行TCP三次握手即可
    HTTPS除了TCP三次握手外,还需要进行SSL握手
  • 端口
    HTTP端口默认80
    HTTPS端口默认443
  • CA证书
    HTTP不需要CA证书
    HTTPS需要CA证书确认身份

HTTP超文本传输协议----记录相关推荐

  1. 认识Http协议(超文本传输协议)

    1.认识url url是统一资源定位符,是对互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址. 它的一般表现形式为: <协议>://<主机>:< ...

  2. HTTP(超文本传输协议)详细解析

    文章目录 概念 http协议格式 首行 请求行 请求方法 URL urlencode和urldecode 协议版本 HTTP0.9 HTTP1.0 HTTP1.1 HTTP2.0 响应行 响应状态码 ...

  3. 超文本传输协议HTTP

    在了解HTTP 协议之前需要先了解一些其他的概念,了解它们之间的关系才能更好的理解HTTP 协议. 内容偏于理论知识,理解起来可能不是很容易,所以在阅读之前希望带着以下几个问题,增加阅读的兴趣. 为什 ...

  4. 超文本传输协议版本 2 [http/2 spec]

    Github:中英对照版 超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/ ...

  5. HTTP服务(超文本传输协议)

    RHCE 文章目录 前言 HTTP web服务器 网页.网页文件和网站 WWW(world wide web) www所使用 静态网站和动态网站 动态网站架构(简)--LAMP http协议运行原理( ...

  6. 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP

    文章目录 文件传输协议FTP FTP服务器和用户端 FTP工作原理 简单邮件传送协议SMTP 邮局协议POP3 网际报文存取协议IMAP 万维网和HTTP协议 超文本传输协议HTTP HTTP协议的特 ...

  7. 超文本传输协议-HTTP/1.1

    说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 "互联网官方协议标准"(STD 1)来了解本协议的标准化状态.本协议不限流传发布. 版权声明 Cop ...

  8. 超文本传输协议HTTP/1.1

    文章来源: http://www.blogjava.net/sunchaojin/archive/2007/08/09/http.html 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以 ...

  9. 超文本传输协议(HTTP/1.1)中文翻译

    超文本传输协议-HTTP/1.1 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 "互联网官方协议标准"(STD 1)来了解本协议的标准化状态.本协 ...

最新文章

  1. iOS UIButton 文字图片上下左右布局
  2. 通过微信企业号发送zabbix报警
  3. for(;;)是什么,for(;;)的作用
  4. 部署zabbix企业监控平台
  5. 开关怎么使用_开关也能自发电?ebelong易百珑S2自发电无线开关曝光
  6. mac上java文件如何编译_如何在Mac上用Java编译和运行程序?
  7. 购物车的收货地址js php,Javascript实现购物车功能的详细代码
  8. 网页统计所用到的名词解析
  9. android布局边缘加深,Android布局属性详解
  10. js判断undefined nan等
  11. 大数据分析的作用有哪些
  12. 图解 Git,一目了然!
  13. idea的Database导出导入表操作
  14. SVN下载及其安装配置
  15. 电机功率与转矩/扭矩的关系
  16. Python自动登录QQ空间
  17. springboot中Excel文件导出
  18. MySQL数据库高级SQL语句【进阶查询、null值、数据库正则、数据库运算符、连接查询(内连接、左外连接、右外连接)】
  19. 直流电机 M PWM 调速原理
  20. Nginx接入链路监控SkyWalking

热门文章

  1. 第十一周(二)——中国金字塔
  2. 如何在 Ubuntu 上安装和配置 Redis
  3. java多租户架构_Java 多租户:配置选项、租户生命周期和所使用的隔离性
  4. U盘/硬盘/数码相机RAW格式文件丢失的原因|恢复方法
  5. 买手机选择困难症,Python数据分析帮你解决
  6. tornado 报错 NotImplementedError
  7. 沉降预测算法-星野法
  8. SAP ECC6.0 R3 IDES FOR ORACLE 安装笔记 (一)
  9. 输入一会整数,输出所有质素因子2020.11.10
  10. JS 的立即执行函数