写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
HTTP简介
- HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
- HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。
WWW:万维网WWW是World Wide Web的简称,也称为Web、3W等。WWW是基于客户机/服务器方式的信息发现技术和超文本技术的综合。WWW服务器通过超文本标记语言(HTML)把信息组织成为图文并茂的超文本,利用链接从一个站点跳到另个站点。这样一来彻底摆脱了以前查询工具只能按特定路径一步步地查找信息的限制 。
HTTP工作原理
-
HTTP协议工作于客户端与服务端架构上。可以理解为从后端到前端,而浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
-
URL:uniform resource locator,统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法。
-
“统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
-
Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。
-
IIS:Internet Information Services。是微软旗下的web服务器,也是目前最bai流行的Web服务器产品之一。是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面。
-
Apache:世界上用的最多的Web服务器,市场占有率达60%左右。是一款Web服务器软件,bai有多种产品,可以du支持SSL技术,支持多zhi个虚拟主机。
-
Nginx:是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
-
Web服务器根据接收到的请求后,向客户端发送响应信息。
-
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
HTTP注意事项
- HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:这意味,只要客户端和服务器知道如何处理的数据内容,如何类型的数据都可以通过HTTP发送。客户端以及服务端指定使用适合的MIME-type内容。
- HTTP是无状态:HTTP协议是无状态协议,无状态是指协议对于事物处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快。
- http server就是web server,或者说网页服务器。常用的web server有iis,apache等。iis是internet information server的简称。windows上主dao要的web服务器。运行asp,asp.net等。apache的名字叫阿帕奇。是开源组织的开源产品。可以运行在windows上,也可以在linux,unix上,常用来运行php,jsp等。当然要搭配必须的模块。
- CGI(common gate internetgace)通用网bai关接口,是一段程序服务器上供客户端HTML页面的du接口。通俗讲CGI就像是一座桥zhi,网页和 WEB服务器中的执行dao程序连接起来,把HTML接受的指令传递给服务器,把服务器执行的结果返还给HTML页;CGI可以实现处理表格,数据库查询,送电子邮件等许多操作,常见的CGI就是计数器。CGI使网页变得不是静态的,是交互式的。
HTTP消息结构
- HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。
- 一个HTTP"客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。
- 一个HTTP"服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。
- HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。
- 一旦建立连接后,数据消息就通过类似Internet邮件所使用的格式[RFC5322]和多用途Internet邮件扩展(MIME)[RFC2045]来传送。
客户端请求消息
- 客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。
服务器响应消息
- HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
HTTP请求方法
- 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
- HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。
- HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
| 方法 | 描述 |
|---|---|
| GET | 请求指定页面信息,并返回实体主体 |
| HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取表头 |
| POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据包被包含在请求体内。POST请求可能会导致新的资源的建立和/或已有资源的修改 |
| PUT | 从客户端向服务器传送的数据取代指定的文档的内容 |
| DELETE | 请求服务器删除指定的页面 |
| CONNRCT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器 |
| OPTIONS | 允许客户端查看服务器的性能 |
| TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
| PATCH | 是对PUT方法的补充,用来对已知资源进行局部更新 |
end
后续的内容明天继续学习,冲冲冲