HTTP超文本传输协议----记录
最近时不时会看到一些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超文本传输协议----记录相关推荐
- 认识Http协议(超文本传输协议)
1.认识url url是统一资源定位符,是对互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址. 它的一般表现形式为: <协议>://<主机>:< ...
- HTTP(超文本传输协议)详细解析
文章目录 概念 http协议格式 首行 请求行 请求方法 URL urlencode和urldecode 协议版本 HTTP0.9 HTTP1.0 HTTP1.1 HTTP2.0 响应行 响应状态码 ...
- 超文本传输协议HTTP
在了解HTTP 协议之前需要先了解一些其他的概念,了解它们之间的关系才能更好的理解HTTP 协议. 内容偏于理论知识,理解起来可能不是很容易,所以在阅读之前希望带着以下几个问题,增加阅读的兴趣. 为什 ...
- 超文本传输协议版本 2 [http/2 spec]
Github:中英对照版 超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/ ...
- HTTP服务(超文本传输协议)
RHCE 文章目录 前言 HTTP web服务器 网页.网页文件和网站 WWW(world wide web) www所使用 静态网站和动态网站 动态网站架构(简)--LAMP http协议运行原理( ...
- 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP
文章目录 文件传输协议FTP FTP服务器和用户端 FTP工作原理 简单邮件传送协议SMTP 邮局协议POP3 网际报文存取协议IMAP 万维网和HTTP协议 超文本传输协议HTTP HTTP协议的特 ...
- 超文本传输协议-HTTP/1.1
说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 "互联网官方协议标准"(STD 1)来了解本协议的标准化状态.本协议不限流传发布. 版权声明 Cop ...
- 超文本传输协议HTTP/1.1
文章来源: http://www.blogjava.net/sunchaojin/archive/2007/08/09/http.html 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以 ...
- 超文本传输协议(HTTP/1.1)中文翻译
超文本传输协议-HTTP/1.1 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善.请参考 "互联网官方协议标准"(STD 1)来了解本协议的标准化状态.本协 ...
最新文章
- iOS UIButton 文字图片上下左右布局
- 通过微信企业号发送zabbix报警
- for(;;)是什么,for(;;)的作用
- 部署zabbix企业监控平台
- 开关怎么使用_开关也能自发电?ebelong易百珑S2自发电无线开关曝光
- mac上java文件如何编译_如何在Mac上用Java编译和运行程序?
- 购物车的收货地址js php,Javascript实现购物车功能的详细代码
- 网页统计所用到的名词解析
- android布局边缘加深,Android布局属性详解
- js判断undefined nan等
- 大数据分析的作用有哪些
- 图解 Git,一目了然!
- idea的Database导出导入表操作
- SVN下载及其安装配置
- 电机功率与转矩/扭矩的关系
- Python自动登录QQ空间
- springboot中Excel文件导出
- MySQL数据库高级SQL语句【进阶查询、null值、数据库正则、数据库运算符、连接查询(内连接、左外连接、右外连接)】
- 直流电机 M PWM 调速原理
- Nginx接入链路监控SkyWalking