-
2017-08-05 13:30:54
HTTP详解(一):http简介及特点
HTTP详解(一):http简介及特点
好,同学们,今天我们开始讲一下http的相关知识。我相信,稍微有一点网络知识的人都听说过http,但是http到底是个什么东西呢。今天呢我们来谈一谈它。一、http到底是什么?http协议全名叫做:超文本传输协议。是互联网上最广泛的一种协议。例如,我们打开浏览器,输入http://so.com/就可以访问360搜索,这就是通过http协议进行的一次访问。其实,说了这么多,可能我们对http的理解,还是很模糊,不着急,我们接着往后看。我们举个例子,以前的人们通信的时候通过写信的方式。而一般写信是有格式,一般分为称呼、正文、结尾、署名、日期等等,写信人通过这种格式写完信寄出去,收信人也通过这种格式进行回信。而这种格式就是某种意义上的一种规范协议。当然,很多人会问,小酷你骗人,不按照这种方式写信,别人都读不懂了吗!当然不是,人是活的,但机器是死的。互相通信的两个机器只能通过某种约定好的协议进行通信,只有通过这种约定好的方式通信,通信的双方才能看懂对方发过来的是什么。所以,我个人理解,http协议就是通信的双方(通常指客户端和服务器)进行数据传输的一种约定好的规范!二、http协议的特点有哪些?http协议的特点总结起来就一下几点:1、http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。2、无连接。所谓的无连接就是服务器收到了客户端的请求之后,响应完成并收到客户端的应答之后,即断开连接。限制每次的连接只处理一次请求。从而节省传输时间。3、无状态。http协议对事务的处理没有记忆能力。也就意味着如果需要前面的信息,只能重传,这无形之中增加数据的传输量。这种方式某种方面上讲解放了服务器,但是却不利于客户端与服务器的连接。为了弥补这种不足,产生了两项记录http状态的技术,一个叫做Cookie,一个叫做Session,后面我们再细讲它们。4、简单快捷:所谓的简单快捷是指客户端向服务器请求服务时,一般来说只需要传输请求方法和路径,就能进行访问。5、灵活:这里主要指的是客户端可以通过http协议传输任意类型的数据。比如传输.jpg文件、.ppt文件等等,只需要设定content-type就可以进行传输。至于content-type是什么,咱们后面再细讲。三、http请求/响应的步骤是什么?1、客户端连接到web服务器:客户端,我们通常指的是浏览器,与web服务器的http端口(默认情况下80)建立一个TCP套接字的连接。2、发送HTTP请求:通过TCp套接字,浏览器向web服务器发送一个请求报文,一个请求报文包括请求行、请求头、空行、请求体四部分。3、服务器端解析请求并返回http响应:web服务器解析请求,定位资源,返回响应报文。响应报文主要包括状态行、响应头部、空行、响应体四部分构成。4、释放TCP连接:web浏览器主动关闭TCP套接字,关闭TCP连接。而客户端则需要被动的关闭TCP套接字,释放TCP连接。5、客户端浏览器解析响应报文,解析成HTML内容,经过浏览器的渲染之后就能展示给人们了。更多相关内容 -
HTTP详解
2021-08-12 16:19:46HTTP 详解 目录HTTP 详解前言二、使用步骤1.引入库2.读入数据总结 前言 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准...
一、HTTP简介
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。
二、HTTP 工作原理及注意事项
1.工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
2.注意事项
HTTP三点注意事项:
- HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
- HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。
- HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快
。
三、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响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。实例
下面实例是一点典型的使用GET来传递数据的实例:
客户端请求:GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi 服务端响应: HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain 输出结果: Hello World! My payload includes a trailing CRLF.
四、HTTP请求方法
HTTP 请求方法
根据 HTTP 标准,HTTP 请求可以使用多种请求方法。
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。五.HTTP状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。
HTTP状态码的英文为HTTP Status Code。
下面是常见的HTTP状态码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误 -
http协议详解
2015-07-01 16:50:25http协议详解,虽然说是详解,事实上主要记录了一下常用的知识点,内容并不多,看起来不费劲,但是都很有用。 -
HTTP协议详解.pdf
2017-11-18 00:59:24HTTP协议详解 HTTP协议详解HTTP协议详解HTTP协议详解HTTP协议详解HTTP协议详解.pdf小巧,清晰,全面的PDF,值得收藏 -
HTTP详解.doc
2013-01-13 21:54:15HTTP详解.doc 你值得拥有,欢迎下载,无需积分 -
张孝祥_JAVA课堂_HTTP协议详解第1讲
2017-05-07 12:33:34张孝祥_JAVA课堂_HTTP协议详解第1讲 -
详解NGINX访问https跳转到http的解决方法
2020-09-30 07:54:34主要介绍了详解NGINX访问https跳转到http的解决方法,非常具有实用价值,需要的朋友可以参考下 -
http头详解
2017-02-07 16:11:54http头详解 -
HTTP协议详解视频课程
2021-10-14 15:28:43《HTTP协议详解》教学视频由孙鑫老师主讲并录制 -
http请求之response详解
2018-07-26 17:11:37很详细的http响应详解,非常不错的一个思维导图。。。 -
HTTP协议详解
2016-05-13 12:01:08HTTP协议详解,请求,响应,报头 -
HTTP状态码详解
2018-03-29 09:48:24HTTP状态码详解 -
HTTP详解(六):HTTP Header 讲解
2017-08-06 09:03:23HTTP详解(六):HTTP Header 讲解 HTTP详解(六):HTTP Header 讲解 这篇呢,主要是和大家聊一聊HTTP报文中首部的一些东西。这里面东西虽然不多,但是却很重要,工作或者面试中经常会用到它们(谁骗人谁小狗~)。...HTTP详解(六):HTTP Header 讲解HTTP详解(六):HTTP Header 讲解
这篇呢,主要是和大家聊一聊HTTP报文中首部的一些东西。这里面东西虽然不多,但是却很重要,工作或者面试中经常会用到它们(谁骗人谁小狗~)。在之前的一篇文章中,我提到HTTP的报文格式,HTTP报文分为请求报文和响应报文。请求报文和响应报文的的第一行叫做状态行。状态行后面就跟着多个HTTP首部字段。首先,咱们得清楚HTTP头部有什么作用,HTTP首部用来向请求报文或者响应报文中添加一些附加信息。通过HTTP首部信息,客户端或者服务器端就能了解到这次报文到底具有哪些属性,报文发送端有哪些喜好等等。HTTP首部的分类:1、 通用首部 :请求报文和响应报文都支持,换句话说,就是既可以出现在请求报文中,也可以出现在响应报文中。2、 请求首部 :出现在请求报文第一行(请求行)的后面,为请求报文添加一些附加信息3、 响应首部 :出现在响应报文第一行的后面,提供了一些关于响应报文的一些信息4、 实体首部 :我们都知道,请求报文和响应报文都包含实体报文,实体首部就是用来描述实体报文的一些属性。5、 扩展头部 :HTTP规范中没有定义的首部。首部的语法:
接下来,我们就详细介绍一下各个首部。
通用首部:通用首部提供了请求报文和响应报文都支持的首部,就是“谁我也不得罪,谁都支持”。我们一起看一下一些常用的通用首部。
乍一看,太多了,不好记,别着急。依我个人经验,面试的时候这些属性,一般不会全部问到。如果有面试官,对于以上每个属性挨个询问你,十有八九是个瓜皮面试官!
一般来说,面试官可能会问到你的是Cache-Control这个属性。这个属性是用来控制报文中缓存机制的。我们先聊一下它是做什么的。很久很久以前,我呢,看了一句非常diao的一句话,大体意思是这样的:理想情况下的HTTP的请求,是不需要和服务器端进行交互的或者尽可能少的与服务器端进行交互!为什么要这么做的,因为通过与服务器端进行交互获取内容对速度的影响非常大,同时会占用不少的带宽,所以就有了缓存这一说。通过设置合理的Cache-Control策略,缓存响应,可以有效的减少客户端与服务器端的交互。我们来看一下,Cache-Control有哪些常用属性值。1、no-cache:这个属性呢,不要被他的样貌给迷惑了,它并不是不缓存响应报文,只不过在服务器返回响应时,缓存都要向服务器评估缓存的新鲜度。也就是说,如果服务器返回的响应相比缓存有所变动,则使用服务器的响应。2、no-store:该指令规定不缓存任何内容(注意和no-cache的区别)3、max-age:用法max-age=60(秒),用来表示缓存资源的保鲜时间。当缓存的内容缓存时间大于该值是,请求将重新转发至服务器。4、s-maxage:用法和max-age相同,并且行为和max-age也相同,不同的是s-maxage适用于公共缓存。关于通用首部,就先说到这里,有兴趣的童鞋们在自己去了解一下。总的来说,它在面试或者工作过程中考察的不是很多。
请求首部:请求首部,比较简单,存在于请求报文中,用来告诉服务器端是谁来发的报文,以及客户端能够接受的一些编码、语言信息等等。主要就是一些附加信息以及客户端的一些喜好。
我们来看一下,比较常见的请求首部。
响应首部:响应首部是响应报文属于自己的首部。跟请求首部类似,响应首部是给服务端提供一些额外的信息,让客户端能够更好的了解服务端以及对客户端的一些要求。我们来看一下,几个比较常见的响应首部。
上图!
实体首部:首先呢,咱们得清楚“实体首部”它到底属于报文实体和报文首部呢。它这个名字比较调皮, 一定要记住,实体首部属于首部,它属于报文结构中首部部分(请求报文分请求行、首部、空行、实体报文四部分),不属于报文实体,它是指请求报文和响应报文的实体部分使用的首部。我们来看一下,比较常见的实体首部。
拓展头部:拓展头部其实是HTTP规范中没有明确定义的的头字段,这些头字段称为自定义的HTTP头部。在这里我就不赘述了,有兴趣的读者可以自己查找资料。其实,总的来说,HTTP首部分为通用首部、请求首部、响应首部、实体首部、拓展头部,但是有很多地方就直接把HTTP头部分为request和response两部分,其实这两种分类从不同的角度出发,都是可以的。 -
nginx处理http请求实例详解
2020-09-30 07:07:13主要介绍了nginx处理http请求实例详解的相关资料,需要的朋友可以参考下 -
Web协议详解与抓包实战视频.zip
2022-01-23 12:51:4312-详解HTTP的请求行.hd.mp4 13-HTTP的正确响应码.hd.mp4 14-HTTP的错误响应码.hd.mp4 15-如何管理跨代理服务器的长短连接?.hd.mp4 16-HTTP消息在服务器端的路由.hd.mp4 17-代理服务器转发消息时的相关头部.... -
张孝祥_HTTP协议详解
2014-12-25 22:30:27传智播客_张孝祥_JAVA课堂_HTTP协议详解第一讲 -
微信小程序 封装http请求实例详解
2020-08-31 15:57:55主要介绍了微信小程序 封装http请求实例详解的相关资料,需要的朋友可以参考下 -
HTTP协议详解.txt
2021-11-17 08:34:18HTTP协议详解.txt -
大神总结的HTTP协议详解手册
2020-12-02 13:48:12大神总结的HTTP协议详解手册 -
HTTP协议详解.docx
2021-09-26 23:11:32HTTP协议详解.docx -
web测试之3.2http协议详解
2018-03-28 14:21:50文件大小的限制,这次先上传http 协议详解剩余部分。总的分六次上传 1.web系统基础 2.理解网络协议 3.http协议详解 4.web 前端分析 5.web 安全性测试 6.web 兼容性以及可用性测试 -
互联网HTTP协议详解 大神精彩分解
2020-09-27 11:15:03互联网HTTP协议详解 大神精彩分解 -
HTTP错误代码详解.pdf
2021-10-02 11:38:43HTTP错误代码详解.pdf