HTTP介绍

作者: 鋕畵 | 来源:发表于2018-04-04 22:39 被阅读0次

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。HTTP默认端口号为80,你可以更改为使用其他端口,但一般不这么使用。

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)、空行和请求数据。请求的详细格式如下:

1 动词 路径 协议/版本

2 Key1: value1

2 Key2: value2

2 Key3: value3

2 Content-Type: application/x-www-form-urlencoded

2 Host: www.baidu.com

2 User-Agent: curl/7.54.0

3(空行)

4 要上传的数据

其中,需要注意的是:

1.请求最多包含四部分,最少包含三部分。(也就是说第四部分可以为空)

2.第三部分永远都是一个回车(\n)

3.动词有 GET POST PUT PATCH DELETE HEAD OPTIONS 等

4.这里的路径包括「查询参数」,但不包括「锚点」

5.如果你没有写路径,那么路径默认为 /

6.第 2 部分中的 Content-Type 标注了第 4 部分的格式

我们也可以在浏览器上查看我们浏览网址的请求,以下是查看过程:

1.打开浏览器,右键点击选中“检查”,打开浏览器代码查看页面,选择“Network”。在地址栏输入网址“www.baidu.com”,回车,查看 request,点击“view source”,变可以查看到请求的前三部分了,如下图所示:

2.如果有请求的第四部分,那么在 FormData 或 Payload 里面可以看到。

HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。响应的详细格式如下:

1 协议/版本号 状态码 状态解释

2 Key1: value1

2 Key2: value2

2 Content-Length: 17931

2 Content-Type: text/html

3(空行)

4 要下载的内容

我们也可以在浏览器上查看我们浏览网址的响应,以下是查看过程:

1.打开浏览器,右键点击选中“检查”,打开浏览器代码查看页面,选择“Network”。在地址栏输入网址“www.baidu.com”,回车,查看 response headers,点击“view source”,变可以查看到响应的前二部分了,如下图所示:

2.查看 Response 或者 Preview,你会看到响应的第 4 部分。

最后,介绍一下如何使用Curl命令。curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS GOPHER,TELNET,DICT,FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST,PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

curl的常用选项:

1. -s  不显示进度表或错误消息

2. -v 将POST请求中指定的数据发送到HTTP服务器。

3 -H 自定义头信息传递给服务器。

4. -X  使用指定的HTTP代理。

5. -d 添加请求中的上传数据。

例如命令:curl -X POST -d "1234567890" -s -v -H "Frank: xxx" -- "https://www.baidu.com",便可以完整的得到一个请求和响应过程。其中,

-X Post 表明请求类型为Post,-d “1234567890”,表明把10字节的字符串“1234567890”上传。-H "Frank: xxx" 表明请求中的头信息为“Frank: xxx”,"https://www.baidu.com"表明请求的内容为“https://www.baidu.com”这个网址。

相关文章

  • Http介绍

    1. 简介 定义:超文本传输协议,属于应用层 作用:规定了应用进程间通信的准则 特点: 传输效率高,可靠性高,兼容...

  • HTTP介绍

    TTP属于老话题了,在项目中我们经常需要往服务端发POST或者GET请求,但是对于HTTP的了解不应只局限于此。千...

  • HTTP介绍

    一、http请求 1. http请求操作/curl命令 curl -s -v -H "Frank: xxx" --...

  • HTTP介绍

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(W...

  • HTTP介绍

    1.何为HTTP? HTTP全称为HyperText Transfer Protocol(超文本传输协议),是服务...

  • HTTP介绍

    一.简介 HTTP协议,中文名:超文本传输协议(HyperText Transfer Protocol)是互联网上...

  • Http介绍

    什么是Http协议 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)...

  • Http介绍

    1、Http的概念 http是tcp/ip协议族中的一个协议,是工作在应用层的。 2、和http协议关系密切的协议...

  • Http 介绍

    1.什么是http协议 .超文本传输协议 ,处于网络应用层 工作于 客户端-服务端 架构上,如浏览器在客户端向we...

  • HTTP介绍

    一、HTTP协议:主要用于客户端和服务器之间的网络通信,是目前应用广泛的一种通信协议。客户端一般指的是请求资源的一...

网友评论

    本文标题:HTTP介绍

    本文链接:https://www.haomeiwen.com/subject/ukmlhftx.html