HTTP 超文本传输协议

简介

  HTTP协议,全称为HyperText Transfer Protocol,中文名为超文本传输协议,是互联网中最常用的一种网络协议。HTTP的重要应用之一是WWW服务。设计HTTP协议最初的目的就是提供一种发布和接受HTML(一种页面标记语言)页面的方法。HTTP是一个属于应用层的面向对象的协议,是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
   HTTP协议是互联网上常用的通信协议之一。它有很多的应用,但最流行的就是用于Web浏览器和Web服务器之间的通信,即WWW应用或Web应用。
  WWW,全称为World Wide Web,常称为web,中文翻译为“万维网”。它是目前互联网上最受用户欢迎的信息服务形式。HTTP协议的WWW服务应用的默认端口为80,另外一个加密的WWW服务应用https的默认端口为443,主要用于网银、支付等和钱相关的业务。当今,HTTP服务、WWW服务、Web服务三者的概念已经混淆了,大家现在几乎都认同是同一种服务(https://blog.csdn.net/weixin_40470303/article/details/80654410 )
在这里插入图片描述

HTTP请求方法

在HTTP通信中,每个HTTP请求报文都包含一个方法。用以告诉Web服务器端需要执行哪些具体的动作,这些动作包括:获取指定Web页面、提交内容到服务器、删除服务器上资源文件等,这些HTTP请求报文中包含的方法被称为HTTP请求方法。其中,常用的HTTP请求方法见下图
在这里插入图片描述

HTTP状态码

HTTP状态码(HTTP Status Code)是用来表示Web服务器响应HTTP请求状态的数字代码。每当Web客户端向Web服务器发送一个HTTP请求时,Web服务器都会返回一个状态响应代码。这个状态码是一个三位数字代码,作用是告知Web客户端此次请求是否成功,或者是否要采取其他的动作方式。
HTTP协议1.1版本中的状态码可以分为五大类
在这里插入图片描述
HTTP响应的状态码种类很多,但是在实际工作场景中,经常遇到的状态码却不多,以下是常用的HTTP状态码
在这里插入图片描述

HTTP报文

HTTP报文中有很多行内容,这些行的字段都是由一些ASCII码串组成,但各个字段的长度都是不相同的。HTTP报文可分为两种,一种是从Web客户端发往Web服务器的HTTP报文,称为请求报文(Request Message)。另外一种是从Web服务器发往Web客户端的报文,称为响应报文(Response Message),HTTP的请求和响应报文的格式类似。
HTTP请求报文由请求行、请求头部(header)、空行和请求报文主体几个部分组成,
在这里插入图片描述1.1请求行
请求行是请求报文的第一行,用来说明客户端想要做什么。请求行分为三个部分:请求方法、请求地址和协议版本。
请求地址
URL:统一资源定位符,是一种自愿位置的抽象唯一识别方法。
组成:<协议>://<主机>:<端口>/<路径>
端口和路径有时可以省略(http默认端口号是80)
请求方法
http/1.1定义的请求方法有8种:GET POST PUT DELETE PATCH HEAD OPTIONS TRACE。最常用的两种GET和POST,如果是RESTFUL接口的话一般会用到GET POST DELETE PUT。
协议版本
协议版本的格式为:http/主版本号.次版本号,常用的有http/1.0 http/1.1

下面以GET/index.html HTTP/1.1为例来说明请求报文的起始请求行信息详情
在这里插入图片描述1.2请求头部
请求头部由关键字/值组成,每对一行,关键字和值用英文冒号":"分隔。请求头部的作用是通过客户端把请求的相关信息告诉给服务器
在这里插入图片描述在这里插入图片描述
与请求报文相关的最常用的请求头是Content-Type和Content-Length。

1.3空行
最后一个请求头部信息之后是一个空行,通过发送回车符和换行符,通知Web服务器空行以下不会有请求头部的信息了。

1.4请求报文主体
请求报文主体包括了要发送给Web服务器的数据信息。请求报文主体不会应用于HTTP的GET命令的方法,而是应用于POST方法。POST方法适用于需要客户填写表单的场合。请求报文的主体信息此处不再举例。

HTTP响应报文(Response Message)

HTTP响应报文由起始行、响应头部(header)、空行和响应报文主体这几个部分组成,和HTTP请求报文格式类似。
在这里插入图片描述在这里插入图片描述
1.1起始行
响应报文的起始行也叫状态行,用来说明服务器响应客户端请求的状况。一般为协议及版本号、数字状态码、状态情况。例如:HTTP/1.1 200 OK。

1.2响应头部
和请求报文类似,起始行的后面一般有若干个头部字段。每个头部字段都包含一个名字和一个值,两者之间用冒号分隔。头部结尾也是以一个空行结束的。常见的头部信息有:
在这里插入图片描述

1.3空行
最后一个相应头部信息之后是一个空行,通过发送回车符和换行符,通知客户端空行下文无头部信息了。

1.4响应报文主体
响应报文主体中装载了要返回给客户端的数据。这些数据可以是文本,也可以是二进制的(如图片、视频),下面是响应报文主体的html格式文本数据示例。
在这里插入图片描述

HTTP协议原理

HTTP协议属于OSI模型中的第七层应用协议,HTTP协议的重要应用就是WWW服务应用,下面就以WWW服务应用为例介绍了HTTP协议的通信原理。以HTTP协议进行通信时,需要有客户端(终端用户)和服务器端(即Web服务器),在Web客户端向Web服务器发送一个TCP/IP连接。整个HTTP协议请求的工作流程如下:

1.终端用户在Web浏览器地址栏输入访问地址http://www,baidu.com/index.html。

2.Web浏览器请求DNS服务器把域名www.baidu.com转换成Web服务器的IP地址,此处的解析过程就是DNS解析过程,上篇博客有讲到(DNS域名解析服务器),此处不再说明。

3.Web浏览器将端口号(默认是80)从访问地址(URL)中解析出来。

4.Web浏览器通过解析后的IP地址及端口号与Web服务器之间建立一条TCP连接。

5.建立TCP连接后,Web浏览器向Web服务器发送一条HTTP请求报文,请求报文内容格式及信息细节前面已经讲过,此处不再说明。

6.Web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文,响应报文的内容格式及信息细节前文已经讲过,此处不再说明。

7.Web服务器关闭HTTP连接,关闭TCP连接,Web浏览器显示访问的网站内容到屏幕上。

上述就是HTTP协议通信过程,整个通信原理的重要知识点有:

1)用户访问网站的流程。

2)DNS解析流程。

3)建立TCP连接发送HTTP报文的过程。

4)HTTP请求报文的细节。

5)HTTP响应报文的细节。

6)Web服务器请求后端集群的细节
在这里插入图片描述

HTTP之URL

在这里插入图片描述
HTTP使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息

URL,全称是UniformResourceLocator, 中文叫统一资源定位符,是互联网上用来标识某一处资源的地址。以下面这个URL为例,介绍下普通URL的各部分组成:
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

从上面的URL可以看出,一个完整的URL包括以下几部分:
1.协议部分:该URL的协议部分为“http:”,这代表网页使用的是HTTP协议。在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符。

(原文:http://blog.csdn.net/ergouge/article/details/8185219

Apache

在这里插入图片描述Linux下的web服务器,软件使用的Apache,Apache也是美国军方的一种大型直升机阿帕奇。开放源代码的Apache服务器起初由Illinois大学Urbana-Champaign的国家高级计算机程序中心开发,后来Apache被开放源代码团体的成员不断地发展和加强。逐渐,它开始在功能和速度上超越其他web服务器。由于Apache服务器拥有牢靠可信的稳定性信誉,因此从1995年1月以来,Apache一直是Internet上最流行的web服务器。

网站、网页、网页文件

网页是网站的基本信息单位,是WWW的基本文档。它由文字、图片、动画、声音等多种媒体信息以及链接组成,是由HTML编写的,通过链接实现与其他网页或者网站的关联和跳转。

网页文件是用HTML(标准通用标记语言下的一个应用)编写的,可在WWW上传输,能被浏览器识别显示的文本文件。其扩展名是.html和.htm。

网站由众多不同内容的网页构成,网页的内容可体现网站的全部功能。通常把进入网站首先看到的网页称为首页或者主页,例如新浪、网易、搜狐就是国内比较知名的大型门户网站。

web服务器

web服务器一般指网站服务器,是指驻留在因特网上某种计算机的程序,可以向浏览器等web客户端提供文档,也可放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个web服务器是Apache和Microsoft的Internet信息服务器Unix nginx。

WWW

环球信息网的缩写,(亦作web、www、w3,英文全称world wide web),中文名字为万维网,环球网等,场简称为web。分为web客户端和web服务端程序。www可以让web客户端(常用浏览器)访问浏览web服务器上的页面。是一个由许多互相连接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为“资源”;并且由一个全局“统一资源标识符(URL)”标识;这些资源用过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。

互联网和万维网区别:
internet提供的主要服务有万维网(WWW)、文件传输(FTP)、电子邮件(E-mail)、远程登录(Telnet)、手机(3GHZ)等。

网站架构lamp

静态网页:html
动态网页:和后台数据库实现一些交互 php jsp python perl…
在这里插入图片描述Linux+Apache+MySQL+Perl/PHP/Python一组常用来搭建动态网站后者服务器的开源软件,本身都是各自独立的程序,但是常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的lamp已经与J2EE和.NET商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说。70%以上的访问流量是Lamp来提供的,lamp是最强大的网站解决方案。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值