当前位置:首页 > 技术文章 > 正文内容

「前端 · 面试 」HTTP 总结(一)——HTTP 概述

arlanguage4个月前 (01-17)技术文章27

最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。

概念

HTTP 的全称是 Hyper Text Transfer Protocol,翻译过来就是“超文本传输协议”。

HTTP 是一个简单的请求-响应协议,它通常运行在 TCP 之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。

补充

HTTP 是万维网(World Wide Web)的基础协议

HTTP 详细规定了浏览器和万维网(WWW = World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

自 Tim Berners-Lee 博士和他的团队在 1989-1991 年间创造出 HTTP 以来,HTTP 已经发生了太多的变化,在保持协议简单性的同时,不断扩展其灵活性。如今,HTTP已经从一个只在实验室之间交换文件的早期协议进化到了可以传输图片,高分辨率视频和3D效果的现代复杂互联网协议。

HTTP 是应用层协议

HTTP 是应用层的协议,通过 TCP,或者是 TLS -加密的TCP连接来发送,理论上任何可靠的传输协议都可以使用。

同其他应用层协议一样,HTTP 协议是为了实现某一类具体应用的协议,并由某一运行在用户空间的应用程序来实现其功能。

HTTP 是一种协议规范,这种规范记录在文档上,为真正通过 HTTP 进行通信的 HTTP 的实现程序。

HTTP 是一种可扩展的协议

因为其良好的扩展性,时至今日,它不仅被用来传输超文本文档,还用来传输图片、视频或者向服务器发送如 HTML 表单这样的信息。HTTP 还可以根据网页需求,仅获取部分 Web 文档内容更新网页。

HTTP 是基于 B/S 架构进行通信的

HTTP 的服务器端实现程序有 httpd、nginx 等。

其客户端的实现程序主要是 Web 浏览器,例如 Firefox、Google Chrome、Safari、Opera 等。

Web 服务是基于 TCP 的,因此为了能够随时响应客户端的请求,Web 服务器需要监听在 80/TCP 端口,这样客户端浏览器和 Web 服务器之间就可以通过 HTTP 进行通信了。

HTTP 由请求和响应组成

HTTP 是一个标准的客户端服务器模型。

客户端和服务端通过交换各自的消息(与数据流正好相反)进行交互。由像浏览器这样的客户端发出的消息叫做 requests,被服务端响应的消息叫做 responses。

请求和响应消息的头以 ASCII 形式给出;而消息内容则具有一个类似 MIME 的格式。这个简单模型是早期 Web 成功的有功之臣,因为它使开发和部署非常地直截了当。

HTTP 是一种能够获取如 HTML 这样的网络资源的 protocol (通讯协议)

它是在 Web 上进行数据交换的基础,是一种 client-server 协议。

请求通过一个实体被发出,实体也就是用户代理。大多数情况下,这个用户代理都是指浏览器,当然它也可能是任何东西,比如一个爬取网页生成维护搜索引擎索引的机器爬虫。

也就是说,请求通常是由像浏览器这样的接受方发起的。一个完整的Web 文档通常是由不同的子文档拼接而成的,像是文本、布局描述、图片、视频、脚本等等。

HTTP 协议以明文方式发送内容

HTTP 不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP 协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。

总结

HTTP 是一种运行于 TCP 协议上的应用层协议。

~

~ 本文完,感谢阅读!

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

大家好,我是〖编程三昧〗的作者 隐逸王,我的公众号是『编程三昧』,欢迎关注,希望大家多多指教!

你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/934.html

标签: nginx httpd
分享给朋友:

“「前端 · 面试 」HTTP 总结(一)——HTTP 概述” 的相关文章

Python WSGI 高性能服务器 - Gunicorn 简介

一、简介Gunicorn 意即 Green Unicorn,绿色独角兽。它是一个被广泛使用的高性能的 Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目。它具有如下特性:原生支持 WSGI、Django 和 Paster自动工作进程管理简单的 Pytho...

Nginx安装与调优部署文档(WinServer)

1. 安装环境准备1.1 部署规划软件安装路径 E:\nginx软件日志路径 E:\nginx\logs软件主配置文件路径 E:\nginx\conf软件子配置文件路径 E:\nginx\conf\conf.d软件站点配置路径 E:\nginx\html端口规划 802. Nginx安装部署2.1...

Linux中内网或者没网时安装软件的两种方式

写在前面对于可以连接外网的服务器装软件,只要配置yum源就可以随便使用了但是对于内网来说,不能连接外网,一般情况下,管控平台只有上传的权限。尤其是一些涉密的岗位,比如电力,电信,军工之类的。今天和小伙伴聊聊内网服务器如何安装软件的问题。可事实是,唯恐暴露才华不足的卑怯的畏惧,和厌恶钻研刻苦的惰怠,就...

Java学习路线总结

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象、数组、集合、IO流、String/StringBuffer/StringBuilder、线程、并发、反射、...

配置nginx代理grafana实现域名访问

目的:通过Nginx服务器对grafana进行代理,实现通过https://域名/grafana在公网进行访问实践过程:1、修改Nginx配置(nginx.conf)文件,添加访问grafana的配置,配置时注意proxy_pass后面一定要有符号 /(目的是去掉/grafana/以匹配本身)vi...

Nginx主线版1.14.0发布 Bug修复版本(附下载地址)

[闽南网]- Nginx 主线版 1.14.0 发布了,Nginx(发音同 engine x)是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个 BSD-like 协议下发行,可以在 UNIX、GNU/Linux、BSD、Mac OS X、Solari...