http协议

本文介绍了HTTP协议的基本概念,包括其无状态、无连接、简单快速和灵活的特点,以及URL的组成部分。此外,还详细讲解了HTTP请求和响应的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是HTTP协议

HTTP协议是一种超文本传输协议,是用于万维网服务器传和本地浏览器进行数据通信的传送协议。它可以使浏览器更加高效,使网络资源传输减少。
HTTP本质上是通过基于TCP/IP通信协议来传递数据和资源,资源包括HTML,文件,图片,视频等等。
另外,HTTP还是一个属于应用层的面向对象的协议,它在1990年被提出,目前已经使用了HTTP/1.1版本。
HTTP协议工作在客户端-服务端的架构上,浏览器作为HTTP客户端通过URL向HTTP服务器发送请求,服务器根据接收到的请求向浏览器进行响应。


HTTP协议的特点

1.无状态:无状态只的是协议对于事务处理没有记忆能力,缺少状态意味着后续处理如果需要前面的信息,那么将会将前面的信息进行重传。这样有利也有弊,例如数据重传时数据量就会很大,但是这使得服务器对浏览器的请求响应的较快。
2.无连接:无连接并不是指浏览器不建立连接,而是指每次建立连接只为了处理一个请求,服务器处理完浏览器的请求后,并受到浏览器的应答后就会断开连接,采用这种方式可以是协议更简单,也更容易维护。
3.简单快速:简单指的是浏览器向服务器请求服务时,只需传送请求方法和路径,请求方法常用GET,POST,HEAD。每种HTTP方法规定了客户与服务的联系的类型不同,快速当然是建立在前面两个特点之上的~。
4.灵活:灵活代表HTTP允许传输任意类型的数据对象,正在传输的类型会以Content-Type进行标记

HTTP的URL

HTTP协议的请求与响应是构建在URL之上的,HTTP的URL包含了用于查找某个资源的足够信息,它的格式如下:

http://host[“:”port][abs_path].
http表示使用HTTP协议来访问网络资源;
host表示合法的Internet主机域名或者ip地址;
port:表示协议指定的端口,默认端口为80;
abs_path:表示指定请求资源的url,如果url没有给出abs_path,那么当他作为请求url时,浏览器会自动帮我们加上’/’,表示访问服务器/目录的资源,这点我们很常见,例如我们输入
www.baidu.com;浏览器会自动帮我们转化成http://www.baidu.com/

abs_path的内容其实就是从’/’后面开始的,它包含了
1.虚拟目录部分:从域名后的第一个/开始到最后一个/。
2.锚部分:锚部分表示从#开始到url最后的部分,锚常用来进行页面跳转,#后面的字符都会被浏览器解释为位置标识符,这些字符不会发送到服务器端。
3.文件名部分:从域名的最后一个“/”开始到”?”为止,如果省略该部分,则会使用默认的文件名。
4.参数部分:从”?”开始到“#”位置的部分,参数部分同时也被称为搜索部分或查询部分。
关于#和?可以参考下这篇文章:
http://www.cnblogs.com/kaituorensheng/p/3776527.html

HTTP的请求Request

当浏览器发送一个HTTP请求到服务器,它的请求报文包括如下格式:
(http请求.png)

我们可以看一个http请求的例子:

 GET /562f25980001b1b106000338.jpg HTTP/1.1
Host    img.mukewang.com
User-Agent    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36
Accept    image/webp,image/*,*/*;q=0.8
Referer    http://www.imooc.com/
Accept-Encoding    gzip, deflate, sdch
Accept-Language    zh-CN,zh;q=0.8

1.请求行:主要用来说明请求类型,要访问的资源以及所使用的HTTP版本。
2.请求消息体:消息体主要用来说明服务器要使用的附加信息。
3.第三部分:空行,空行尽管不传递数据,但他是必须的,因为请求消息体没有行数的限制,这个空行的作用就是用来分割消息体和请求正文的。
4.请求正文也叫主体,可以添加任意的数据。


HTTP请求响应Response

浏览器发出请求,服务器当然要作出响应,那么有请求报文,当然也就会有响应报文。HTTP响应部分的报文也由四个部分组成:
(http响应.png)

好了说到这里,http协议大家应该有所了解了,下一张我们将会了解一下http的几种请求方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值