http协议学习和总结系列【协议详解篇】
HTTP协议简介及其工作原理
HTTP协议简介及其工作原理1.HTTP的概述超文本传输协议(HTTP)是万维网应用层的协议,是通过两个程序实现:一个是客户端程序(一般称为浏览器),另一个是服务器(常称Web服务器)。
这两个通常运行在不同的主机上通过交换HTTP报文来完成网页请求和响应。
并且HTTP定义了报文的结构和客户/服务器之间交换报文的规则。
2. HTTP的工作流程浏览器可以向web服务器发送请求并显示收到的网页,当用户在浏览器地址栏中输入一个URL或点击一个超连接时,浏览器就向服务器发出了HTTP请求,该请求被送往由URL 指定的WEB服务器,WEB服务器接收到请求后,进行相关文档的检索并以HTTP规定的格式送回所要求的文件或其他相关信息,再由用户计算机上的浏览器负责解释和显示。
在HTTP协议中,由于WEB服务器在发送用户要求的文档过程中,并不储存任何有关客户端的状态信息。
如果某个客户端在几秒钟内两次要求同一文档,服务器绝对不会认为不合理,因为它根本不记得用户端曾经来访过,因此HTTP 不维持客户端状态,故它又被称为无状态协议。
3. HTTP运作过程中的连接3.1连接过程说明假设某个网页有10个JPFG图像,总共11个对象存在同一个服务器中,该网页的基本文档形式URL为:/somedepartment/home.index当采用HTTP/1.0时,WEB服务过程:⑴.HTTP的客户端启用了对服务器的TCP连接,该服务器的80号端口(HTTP的默认端口)用来监听来自网络的网络服务请求。
⑵. HTTP的客户端通过第一步建立的链接套接字发送“请求报文”。
请求报文中包含了文档的路径名(/somedepartment/home.index )。
⑶.HTTP服务器通过第一步建立连接套接字收到了该请求报文,从磁盘或内存中查找/somedepartment/home.index,将文档封存在HTTP的“相应报文”中,并通过先前建立的套接字将该报文送到客户端。
HTTP协议详解(深入理解)
HTTP协议详解(深⼊理解)引⼊超⽂本传输协议(HTTP,HyperText Transfer Protocol)是互联⽹上应⽤最为⼴泛的⼀种⽹络协议。
所有的WWW⽂件都必须遵守这个标准。
设计HTTP最初的⽬的是为了提供⼀种发布和接收HTML页⾯的⽅法。
1960年美国⼈Ted Nelson构思了⼀种通过计算机处理⽂本信息的⽅法,并称之为超⽂本(hypertext),这成为了HTTP超⽂本传输协议标准架构的发展根基。
Ted Nelson组织协调万维⽹协会(World Wide Web Consortium)和互联⽹⼯程⼯作⼩组(Internet Engineering Task Force )共同合作研究,最终发布了⼀系列的RFC,其中著名的RFC 2616定义了HTTP 1.1。
http协议的作⽤及特点HTTP是⼀个客户端和服务器端请求和应答的标准(TCP)。
客户端是终端⽤户,服务器端是⽹站。
通过使⽤Web浏览器、⽹络爬⾍或者其它的⼯具,客户端发起⼀个到服务器上指定端⼝(默认端⼝为80)的HTTP请求。
(我们称这个客户端)叫⽤户代理(user agent)。
应答的服务器上存储着(⼀些)资源,⽐如HTML⽂件和图像。
(我们称)这个应答服务器为源服务器(origin server)。
在⽤户代理和源服务器中间可能存在多个中间层,⽐如代理,⽹关,或者隧道(tunnels)。
尽管TCP/IP协议是互联⽹上最流⾏的应⽤,HTTP协议并没有规定必须使⽤它和(基于)它⽀持的层。
事实上,HTTP可以在任何其他互联⽹协议上,或者在其他⽹络上实现。
HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使⽤。
通常,由HTTP客户端发起⼀个请求,建⽴⼀个到服务器指定端⼝(默认是80端⼝)的TCP连接。
HTTP服务器则在那个端⼝监听客户端发送过来的请求。
⼀旦收到请求,服务器(向客户端)发回⼀个状态⾏,⽐如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的⽂件、错误消息、或者其它⼀些信息。
常见协议总结
常见协议总结一、HTTP协议HTTP协议是超文本传输协议,用于在Web浏览器和Web服务器之间传输数据。
它通过请求-响应的方式进行通信,客户端向服务器发送请求,服务器返回响应。
HTTP协议使用简单、灵活的方式,可在不同的网络环境中实现数据的传输和交互。
它的特点是无连接、无状态,每次请求和响应都是独立的。
二、TCP/IP协议TCP/IP协议是互联网通信的基础协议,它是一组用于在网络上进行通信的协议。
TCP(传输控制协议)负责数据的可靠传输,确保数据的完整性和顺序性;IP(互联网协议)负责数据的路由和传输,将数据包从源地址传输到目标地址。
TCP/IP协议是一种可靠、灵活的协议,广泛应用于互联网和局域网。
三、SMTP协议SMTP协议是简单邮件传输协议,用于电子邮件的发送。
它基于TCP/IP协议,通过邮件服务器将邮件从发件人发送到收件人。
SMTP协议使用命令和响应的方式进行通信,客户端发送命令,服务器返回响应。
SMTP协议确保邮件的可靠传输,支持身份验证和加密等安全机制。
四、FTP协议FTP协议是文件传输协议,用于在客户端和服务器之间传输文件。
它基于TCP/IP协议,支持文件的上传、下载和删除等操作。
FTP协议使用用户身份验证进行安全访问,可以通过用户名和密码登录到服务器。
FTP协议提供了对文件的管理和控制,是广泛应用于文件传输的协议。
五、DNS协议DNS协议是域名系统协议,用于将域名转换为IP地址。
它基于TCP/IP协议,通过域名服务器将域名解析为对应的IP地址。
DNS 协议使用域名层次结构进行命名和管理,可以实现域名的分布式管理和解析。
DNS协议是互联网中重要的基础设施,使得人们可以使用易记的域名访问网络资源。
六、SSH协议SSH协议是安全外壳协议,用于在不安全的网络中安全地传输数据。
它基于TCP/IP协议,通过加密和身份验证等机制确保数据的安全性。
SSH协议可以在远程服务器上执行命令、传输文件和进行安全访问等操作。
HTTP协议格式详解
HTTP协议格式详解一、引言HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。
它是建立在TCP/IP协议之上的,用于在Web浏览器和Web服务器之间进行通信。
本协议详细介绍了HTTP协议的格式,包括请求报文和响应报文的结构、字段和常见的状态码。
二、请求报文格式HTTP请求报文由请求行、请求头部和请求体三部分组成。
1. 请求行请求行由请求方法、请求URI和HTTP协议版本组成,各部分之间使用空格分隔。
常见的请求方法有GET、POST、PUT、DELETE等。
示例:GET /index.html HTTP/1.12. 请求头部请求头部由多个字段组成,每个字段由字段名和字段值组成,中间使用冒号分隔。
字段名不区分大小写,字段值可以包含多个参数,参数之间使用分号分隔。
示例:Host: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36Content-Type: application/json3. 请求体请求体用于传输数据,可以是文本、二进制数据等。
请求体的格式由Content-Type字段指定。
示例:{"username": "example","password": "123456"}三、响应报文格式HTTP响应报文由状态行、响应头部和响应体三部分组成。
1. 状态行状态行由HTTP协议版本、状态码和状态消息组成,各部分之间使用空格分隔。
状态码用于表示服务器对请求的处理结果。
示例:HTTP/1.1 200 OK2. 响应头部响应头部由多个字段组成,与请求头部类似,每个字段由字段名和字段值组成,中间使用冒号分隔。
HTTP协议详细总结
HTTP协议详细总结HTTP超⽂本传输协议,是WWW上应⽤的最多的协议。
了解和掌握HTTP协议是对程序⼈员的基本要求。
⼀、HTTP介绍 HTTP是⼀个基于请求/响应模式的、⽆状态的协议。
即,浏览器与服务端连接之后,浏览器向服务器发送⼀个请求,服务器返回响应信息之后,双⽅的链接就被关闭。
我们要知道,应⽤层的HTTP要使⽤传输层的TCP协议来完成。
⽽TCP协议是通过“3次握⼿”建⽴连接,是⾯向连接的协议。
默认情况下,浏览器与Web服务器上80端⼝监听的服务器程序建⽴TCP连接。
HTTP1.0是典型的请求/响应模式。
为了减少服务器的开销,HTTP1.1默认有“持续连接”的机制。
通过这种机制,客户端发送请求得到响应后,连接不会马上关闭,可以继续发送请求,还可以流⽔线发送多个请求、⽽不⽤等待每⼀个响应的到来。
⼆、URI和URL URI(统⼀资源标识符)纯粹是⼀种符号结构,⽤于指定构成Web资源的字符串的各个不同部分。
⽽URL(统⼀资源定位符)是⼀种特殊的URI,包含了⽤于查找某个资源的⾜够信息。
URI是⼀种语义上的抽象概念,可以是绝对的,也可以是相对的,⽽URL则必须提供⾜够的信息来定位,所以,是绝对的,⽽通常说的relative URL,则是针对另⼀个absolute URL,本质上还是绝对的。
三、HTTP请求格式如图:(CRLF表⽰回车符+换⾏符,不同颜⾊之间⽤空格隔开)第⼀⾏叫做请求⾏。
所以我们可以说HTTP请求由请求⾏、消息报头、请求正⽂组成。
1、请求⾏如上,请求⾏以⼀个⽅法符号开头,空格之后,⼀个请求URI,再空格,然后⼀个HTTP版本,最后⼀个回车换⾏。
其中请求⽅法有如下⼏种:我们在浏览器地址栏直接输⼊地址的时候,采⽤的就是GET⽅法。
HEAD⽅法⼀般⽤于测试超链接的有效性,因为它只是请求响应消息的报头。
消息报头后⾯会讲。
(HTTP协议中,请求⽅法必须全部⼤写)2、请求正⽂类似name=XXX&pwd=XXXX的内容四、HTTP响应格式与HTTP请求类似,如图:第⼀⾏叫做状态⾏。
HTTP协议详解
HTTP协议详解HTTP协议简介超⽂本传输协议(英⽂:HyperText Transfer Protocol,缩写:HTTP)是⼀种⽤于分布式、协作式和超媒体信息系统的应⽤层协议。
HTTP是万维⽹的数据通信的基础。
HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核⼦研究组织(CERN)所发起。
HTTP的标准制定由万维⽹协会(World Wide Web Consortium,W3C)和互联⽹⼯程任务组(Internet Engineering Task Force,IETF)进⾏协调,最终发布了⼀系列的RFC,其中最著名的是1999年6⽉公布的 RFC 2616,定义了HTTP协议中现今⼴泛使⽤的⼀个版本——HTTP 1.1。
2014年12⽉,互联⽹⼯程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)⼯作⼩组将HTTP/2标准提议递交⾄IESG进⾏讨论,于2015年2⽉17⽇被批准。
HTTP/2标准于2015年5⽉以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。
HTTP协议概述HTTP是⼀个客户端终端(⽤户)和服务器端(⽹站)请求和应答的标准(TCP)。
通过使⽤⽹页浏览器、⽹络爬⾍或者其它的⼯具,客户端发起⼀个HTTP请求到服务器上指定端⼝(默认端⼝为80)。
我们称这个客户端为⽤户代理程序(user agent)。
应答的服务器上存储着⼀些资源,⽐如HTML⽂件和图像。
我们称这个应答服务器为源服务器(origin server)。
在⽤户代理和源服务器中间可能存在多个“中间层”,⽐如代理服务器、⽹关或者隧道(tunnel)。
尽管TCP/IP协议是互联⽹上最流⾏的应⽤,HTTP协议中,并没有规定必须使⽤它或它⽀持的层。
事实上,HTTP可以在任何互联⽹协议上,或其他⽹络上实现。
HTTP假定其下层协议提供可靠的传输。
HTTP网络协议
HTTP⽹络协议Http⽹络协议⼀、Http协议简介1.1 什么是协议协议就是对计算机之间连接的信息格式、能被收/发双⽅接受的传送信息内容的⼀组定义。
协议有多层结构,常见⾼层协议如:TCP/IP负责点到点传送信息包。
(简单来说协议就是在双⽅交互的过程中,规定双⽅如何通信)1.2 什么是HTTP协议HTTP协议是Hyper Text Transfer Protocol(超⽂本传输协议)的缩写,是⽤于从万维⽹(WWW:World Wide Web )服务器传输超⽂本到本地浏览器的传送协议。
互联⽹上应⽤最为⼴泛的⼀种⽹络协议,所有的www都必须遵守该Http协议标准!1.3 Web开发中是否也要遵守HTTP协议呢?答案是:是的!在做Web开发中,浏览器与服务器要通讯,⽽他们通信的过程中也是要遵守Http协议的!1.4 HTTP协议基层HTTP是⼀个基于TCP/IP通信协议来传递数据(HTML ⽂件, 图⽚⽂件, 查询结果等)。
也是基于请求与响应的模型,⽽Http协议默认端⼝为801.5 HTTP的⼯作原理HTTP协议⼯作于客户端-服务端架构上。
浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Nginx,Apache服务器,IIS服务器(Internet Information Services)等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
1.6 HTTP的特点HTTP协议的主要特点如下:⽀持客户端(浏览器)/服务器模式。
B/S简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。
请求⽅法常⽤的有GET、POST。
每种⽅法规定了客户与服务器联系的类型不同。
由于HTTP 协议简单,使得HTTP服务器的程序规模⼩,因⽽通信速度很快。
灵活:HTTP允许传输任意类型的数据对象。
传输的类型由Content-Type加以标记。
⽆连接:⽆连接的含义是限制每次连接只处理⼀个请求。
计算机网络——HTTP协议详解
计算机⽹络——HTTP 协议详解⼀、前⾔ 前段时间为了研究计算机⽹络,看了看《计算机⽹络⾃顶向下⽅法》这本书。
不得不说这真是⼀本好书,内容详细,⽽且讲解的浅显易懂,采⽤了⼤量类⽐的⽅式进⾏讲解,⽽不是单纯的叙述理论,同时在每⼀章的后⾯都有⼤量的练习题以及很有意思的编程题,所以开头先来推荐⼀波。
这本书我暂时只看到了第⼆章,刚看完的内容,所以写⼀篇相关的博客,就当是记笔记了。
⼆、详解 2.1 HTTP 概述 是⼀个应⽤层的协议,全称是超⽂本传输协议,它是的核⼼。
由两个程序实现——客户端程序和服务端程序,⽽的作⽤简单来说就是客户端向服务器发请求,⽽服务器根据请求做出响应。
定义了客户端向服务器请求资源的⽅式,以及服务器向客户端回送资源的⽅式,也就是的请求+响应模型。
客户端向服务器发送请求报⽂请求资源,服务器接收到请求,向客户端回送包含这些资源的响应报⽂。
基于协议,由协议⽀持数据的传输,这说明HTTP 协议是⼀个⾯向连接的可靠协议。
当客户端向服务器请求资源时,⾸先将与服务器建⽴⼀个连接,当连接建⽴成功时,客户端和服务器之间就可以通过套接字接⼝访问,客户端通过连接传输请求报⽂,⽽服务器也通过这个连接回送响应报⽂及资源。
由于的可靠传输,保证了的报⽂⼀定能够完整的送到服务器上,⽽服务器的响应也能完整的回送到客户。
请求的资源⼀般是⼀个页⾯,⽽⼀个页⾯是由⼀个或多个对象组成的,这个对象可能是⼀个⽂件,⼀张图⽚,甚⾄是⼀段视频或者⼩程序。
对于来说,组成⼀个页⾯的这些对象并不属于同⼀个资源,每⼀个对象都是⼀个单独的资源,需要逐⼀请求。
假设我们向服务器请求⼀个页⾯,这个页⾯由⼀个⽂件以及张图⽚组成(通过路径引⽤图⽚),则这个页⾯共有个对象,当服务器接收到客户端对页⾯的请求后,将⽂件通过响应报⽂返回,⽽客户端接收到响应的⽂件后,发现它还引⽤了张图⽚,这时客户端将再次发送个请求,来分别请求这张图⽚。
服务器向客户端发送被请求的⽂件,但是不记录任何客户的信息,所以当你连续向服务器请求同⼀份资源两次时,服务器也会给你响应两次,不会因为你已经请求过就不给你响应了。
HTTP协议详解
HTTP 协议详解 引言
HTTP 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系 统。 它于 1990 年提出, 经过几年的使用与发展, 得到不断地完善和扩展。 目前在 WWW 中使用的是 HTTP/1.0 的第六版,HTTP/1.1 的规范化工作正在进行之中,而且 HTTP-NG(Next Generation of HTTP)的 建议已经提出。 HTTP 协议的主要特点可概括如下: 1.支持客户/服务器模式。 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET、HEAD、 POST。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规 模小,因而通信速度很快。 3.灵活:HTTP 允许传输任意类型的数据对象。正在传输的类型由 Content-Type 加以标记。 4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的 应答后,即断开连接。采用是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着 如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在 服务器不需要先前信息时它的应答就较快。
一、HTTP 协议详解之 URL 篇
http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于 TCP 的 连接方式,HTTP1.1 版本中给出一种持续连接的机制,绝大多数的 Web 开发,都是构建在 HTTP 协议之 上的 Web 应用。 HTTP URL (URL 是一种特殊类型的 URI,包含了用于查找某个资源的足够的信息)的格式如下: http://host[":"port][abs_path] http 表示要通过 HTTP 协议来定位网络资源;host 表示合法的 Internet 主机域名或者 IP 地址; port 指定一个端口号,为空则使用缺省端口 80;abs_path 指定请求资源的 URI;如果 URL 中没有给 出 abs_path, 那么当它作为请求 URI 时, 必须以“/”的形式给出, 通常这个工作浏览器自动帮我们完成。 eg: 1、输入: 浏览器自动转换成:/ 2、http:192.168.0.116:8080/index.jsp
HTTP协议—HTTP报文格式详解
HTTP协议—HTTP报⽂格式详解HTTP协议中有两种报⽂:请求报⽂和响应报⽂⼀、请求报⽂下⾯是⼀个⽐较典型的请求报⽂:每⼀⾏由⼀个回车和换⾏符结束,最后⼀⾏额外再加⼀个回车换⾏符。
HTTP请求报⽂的第⼀⾏叫做请求⾏,后⾯部叫⾸部⾏。
1、请求⾏:请求⾏的三个字段:⽅法字段、URL字段、HTTP版本字段。
⽅法字段可取值:GET、POST、HEAD、PUT和DELETE。
绝⼤部分HTTP请求报⽂都是GET⽅法。
当浏览器请求⼀个对象时,使⽤GET⽅法,在URL字段带有请求对象标识。
2、⾸部⾏Host:127.0.0.1:指明了对象所在主机,虽然主机中已经有⼀条TCP连接存在,但该⾏提供的信息是Web代理⾼速缓存所要求的。
User-Agent:指明代理,就是浏览器的类型。
这服务器可以有效地为不同类型的⽤户代理实际发送相同对象的不同版本。
Accept-Language:zh-CN:表⽰语法版本。
如果服务器中没有这样的对象的,就会发送其默认的版本。
Connection:close :要求服务器在发送完被请求的对象后就关闭这条连接。
HTTP请求通⽤请求格式(下⾯讨论实体体)实体体(entity body):使⽤GET⽅法时实体体会为空,使⽤POST⽅法时才会使⽤该实体体。
提交表单时,会使⽤到POST⽅法(例如在搜索引擎中输⼊搜索关键字),实体体中包含的就是⽤户在表单字段中输⼊的值。
虽然POST⽅法才能⽤到实体体,但是”⽤表单⽣成的请求报⽂不是必须使⽤POST⽅法“:HTML表单经常使⽤GET⽅法,在表单字段中所请求的URL中包括输⼊的数据,例如⼀个使⽤GET⽅法的表单有两个字段aaa和bbb,那么其URL的的结构是这样的:/admin? aaa&bbb (⾮常常见,浏览⽹页的时候可以注意⼀下)下⾯介绍另外⼀些⽅法:HEAD⽅法,与GET类似,服务器收到HEAD请求时,会⽤⼀个HTTP报⽂响应,但是不会反回请求对象,常⽤于调试跟踪。
HTTP协议格式详解
HTTP协议格式详解HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。
它是Web通信的基础,通过在客户端和服务器之间传递请求和响应来实现数据交换。
本文将详细介绍HTTP协议的格式,包括请求消息和响应消息的结构以及各个字段的含义。
一、请求消息格式HTTP请求消息由三个部分组成:请求行、请求头和请求体。
1. 请求行请求行包含了请求的方法、URI和HTTP版本。
格式如下:```<方法> <URI> HTTP/<版本>```常见的HTTP方法有GET、POST、PUT、DELETE等,URI表示请求的资源路径,版本表示HTTP协议的版本号。
2. 请求头请求头包含了请求的各种信息,以键值对的形式表示。
常见的请求头字段有:- Host:表示请求的主机名。
- User-Agent:表示客户端的用户代理。
- Accept:表示客户端能够接受的响应内容类型。
- Content-Type:表示请求体的内容类型。
- Cookie:表示客户端的Cookie信息。
- Authorization:表示客户端的身份验证信息。
请求头字段可以根据具体需求进行添加和修改,以满足请求的要求。
3. 请求体请求体是可选的,用于传递请求的数据。
常见的请求体格式有:- application/x-www-form-urlencoded:用于提交表单数据。
- multipart/form-data:用于上传文件。
- application/json:用于提交JSON格式的数据。
二、响应消息格式HTTP响应消息也由三个部分组成:状态行、响应头和响应体。
1. 状态行状态行包含了响应的HTTP版本、状态码和状态描述。
格式如下:```HTTP/<版本> <状态码> <状态描述>```常见的状态码有200表示成功,404表示资源未找到,500表示服务器内部错误等。
HTTP协议
HTTP协议HTTP协议简介HTTP协议请求RequestHTTP协议响应ResponseHTTP协议完整⼯作流程HTTP协议总结HTTP协议简介 学习前端开发之前先了解⼀下⼏件事 1.什么是互联⽹ 互联⽹就是物理连接介质+互联⽹协议 2.建⽴互联⽹的⽬的 使数据传输打破地域限制 3.什么是上⽹ 上⽹就是过程就是浏览器像服务端发送请求,然后将服务端⽂件下载到本地显⽰,⽽浏览器与服务端就是遵循的HTTP协议。
1、HTTP协议:全称Hyper Text Transfer Protocol(超⽂本传输协议) HTTP协议是⽤于从(www.word wide web,简称万维⽹)服务器传输超⽂本到本地浏览器的传送协议2、HTTP协议⼯作于B/S架构 浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送请求Request。
Web服务器根据接收到的请求后,向客户端发送响应信息Response。
3、HTTP协议是基于TCP/IP通信协议来传递数据的(HTML ⽂件, 图⽚⽂件等),如下图第⼀个HTTP协议诞⽣于1989年3⽉,已过时。
#⼀:它的组成极其简单:#1、只允许客户端发送GET这⼀种请求#2、不⽀持请求头。
#3、由于没有请求头,造成了HTTP 0.9协议只⽀持⼀种内容,即纯⽂本。
不过⽹页仍然⽀持⽤HTML语⾔格式化,同时⽆法插⼊图⽚。
#⼆:⽆状态性#1、HTTP 0.9具有典型的⽆状态性,每个事务独⽴进⾏处理,事务结束时就释放这个连接。
详细解释如下:⼀次HTTP 0.9的传输⾸先要建⽴⼀个由客户端到Web服务器的TCP连接,由客户端发起⼀个请求,然后由Web服务器返回页⾯内容,然后连接会关闭。
如果请求的页⾯不存在,也不会返回任何错误码。
#2、由此可见,HTTP协议的⽆状态特点在其第⼀个版本0.9中已经成型。
#三:HTTP 0.9协议⽂档:/Protocols/HTTP/AsImplemented.htmlHTTP/0.9HTTP/0.9HTTP/1.0是HTTP协议的第⼆个版本,⾄今仍被⼴泛采⽤。
HTTP协议头详解
HTTP协议头详解HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,是互联网应用中最重要的协议之一、HTTP协议使用客户端-服务器模型,客户端发起请求,服务器返回响应。
在HTTP协议中,协议头是用来传输关于请求或响应的元数据的部分。
1. Host: 指定服务器的域名或IP地址。
由于一个服务器可能托管多个域名,使用Host字段可以区分出对应的域名。
2. User-Agent: 标识客户端的类型和版本。
服务器可以通过User-Agent字段判断是哪种浏览器或其他应用发起了请求。
4. Accept: 指定客户端能够接受的内容类型。
服务器可以通过该字段判断返回何种类型的响应。
5. Content-Length: 指定请求或响应的内容长度。
对于请求,表示请求体的长度;对于响应,表示响应体的长度。
6. Cookie: 在HTTP请求和响应之间传递会话信息。
服务器可以通过这个字段来识别用户,保持用户状态。
8. Location: 重定向的目标地址。
服务器通过这个字段将客户端重定向到其他页面。
9. Cache-Control: 控制缓存的行为。
服务器可以通过该字段指定客户端是否应该缓存响应以及缓存的有效期等信息。
10. Last-Modified: 指定资源的最后修改时间。
客户端可以通过该字段判断是否需要重新请求该资源。
11. ETag: 资源的唯一标识符。
客户端可以通过这个字段判断资源是否发生了变化。
12. Accept-Encoding: 指定客户端接受的内容编码方式。
服务器可以根据这个字段压缩响应数据。
13. Server: 标识服务器的软件信息。
客户端可以通过这个字段了解服务器的类型和版本。
14. Connection: 控制连接的行为。
常见的取值有close(关闭连接)和keep-alive(保持连接)。
除了上述常见的协议头字段,HTTP协议还提供了许多其他的头字段,用来传输更多的元数据信息。
【HTTP协议】---HTTP协议详解
【HTTP协议】---HTTP协议详解HTTP协议详解⼀.HTTP简介1.HTTP协议,即超⽂本传输协议(Hypertext transfer protocol)。
是⼀种详细规定了浏览器和万维⽹(WWW = World Wide Web)服务器之间互相通信的规则,通过因特⽹传送万维⽹⽂档的数据传送协议。
2.HTTP协议作为TCP/IP模型中应⽤层的协议也不例外。
HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。
如下图:3.HTTP是⼀个应⽤层协议,由请求和响应构成,是⼀个标准的客户端服务器模型。
HTTP是⼀个⽆状态的协议。
4.HTTP默认的端⼝号为80,HTTPS的端⼝号为443。
5.浏览⽹页是HTTP的主要应⽤,但是这并不代表HTTP就只能应⽤于⽹页的浏览。
HTTP是⼀种协议,只要通信的双⽅都遵守这个协议,HTTP就能有⽤武之地。
⽐如咱们常⽤的QQ,迅雷这些软件,都会使⽤HTTP协议(还包括其他的协议)。
⼆.HTTP特点1、简单快速:客户向服务器请求服务时,只需传送请求⽅法和路径。
由于HTTP协议简单,使得HTTP服务器的程序规模⼩,因⽽通信速度很快。
2、灵活:HTTP允许传输任意类型的数据对象。
正在传输的类型由Content-Type加以标记。
3、HTTP 0.9和1.0使⽤⾮持续连接:限制每次连接只处理⼀个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。
HTTP 1.1使⽤持续连接:不必为每个web对象创建⼀个新的连接,⼀个连接可以传送多个对象,采⽤这种⽅式可以节省传输时间。
4、⽆状态:HTTP协议是⽆状态协议。
⽆状态是指协议对于事务处理没有记忆能⼒。
缺少状态意味着如果后续处理需要前⾯的信息,则它必须重传,这样可能导致每次连接传送的数据量增⼤。
另⼀⽅⾯,在服务器不需要先前信息时它的应答就较快。
5、⽀持B/S及C/S模式。
HTTP协议(一看就会)
HTTP协议(⼀看就会)⼀、什么是HTTP?答:HTTP(Hyper Text Transfer Protocol)(超⽂本传输协议)⼆、什么是超⽂本?答:就是超越了普通⽂本的⽂本,它是⽂字、图⽚、视频等的混合体。
例:HTML三、什么是传输?答:传输是⼀种传输电学消息(连带经过媒介的辐射能现象)的⾏为。
消息可以是⼀串或者⼀组,⽐如,通常也称为或者。
四、什么是协议?答:协议是通信计算机双⽅必须共同遵从的⼀组约定。
例如怎么样建⽴连接、怎么样互相识别等。
只有遵守这个约定,计算机之间才能相互通信交流。
五、什么是统⼀资源定位符(URL)?六、HTTP 消息结构1、请求报⽂结构(1)、语法请求⽅法|空格|URL|空格|协议版本|回车符|换⾏符头部字段名|:|值|回车符|换⾏符...回车符|换⾏符请求数据(2)、例⼦:发送post请求到index.phpname=”zisay”&qq=”15593838”2、响应报⽂结构(1)、语法协议版本|空格|状态码|空格|原因短语|回车符|换⾏符头部字段名|:|值|回车符|换⾏符...回车符|换⾏符响应正⽂(2)、例⼦:响应index.phpHTTP/1.1 200 OKDate: Sun, 23 Jan 2022 03:27:46 GMTServer: Apache/2.4.39 (Win64) OpenSSL/1.1.1b mod_fcgid/2.3.9a mod_log_rotate/1.02 X-Powered-By: PHP/7.4.3Keep-Alive: timeout=5, max=99Connection: Keep-AliveTransfer-Encoding: chunkedContent-Type: text/html; charset=UTF-8七、HTTP 请求⽅法说明1、HTTP/1.0序号⽅法说明1GET请求指定的页⾯信息,并返回实体主体。
http协议分析报告
HTTP协议分析报告1. 引言HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。
它是构建万维网(World Wide Web)的基础,也是互联网应用最为广泛的协议之一。
本报告将对HTTP协议的工作原理进行分析和解释。
2. HTTP协议的基本概念HTTP是一种无状态的协议,即服务器不会保存客户端的任何状态信息。
每个HTTP请求都是一个独立的事务,服务器并不知道前后两次请求是否来自同一个客户端。
这种设计使得HTTP协议具有简洁、高效的特点。
3. HTTP请求过程当客户端发起一个HTTP请求时,它会向服务器发送一个HTTP请求报文。
该报文包含请求行、请求头和请求体三个部分。
请求行指定了请求的方法、目标URL和HTTP协议的版本;请求头包含了请求的附加信息;请求体包含了请求发送的数据。
在收到客户端的请求报文后,服务器会解析该报文,并根据其中的请求行和请求头进行相应处理。
服务器可能需要读取请求体中的数据,然后根据请求的内容执行相应的操作。
最后,服务器会生成一个HTTP响应报文,包含响应行、响应头和响应体三个部分。
4. HTTP响应过程HTTP响应报文是服务器在接收到客户端请求后返回给客户端的一种数据格式。
它包含了响应行、响应头和响应体三个部分。
响应行指定了响应的状态码和状态描述;响应头包含了响应的附加信息;响应体包含了服务器返回的数据。
当客户端接收到HTTP响应报文后,它会解析该报文,并根据其中的响应行和响应头进行相应处理。
客户端可能需要读取响应体中的数据,然后根据响应的内容执行相应的操作。
5. HTTP协议的优缺点HTTP协议具有以下优点: - 简单:HTTP协议使用简单,易于理解和实现。
-灵活:HTTP协议支持多种不同类型的数据格式。
- 可扩展:HTTP协议可以通过添加自定义的请求方法、头字段等进行扩展。
然而,HTTP协议也存在一些缺点: - 无状态:由于HTTP协议是无状态的,服务器无法保存客户端的状态信息,导致某些应用场景下需要频繁的认证和授权。
HTTP协议
HTTP协议协议名称:HTTP协议一、引言HTTP(Hypertext Transfer Protocol)是一种应用层协议,用于在客户端和服务器之间传输超文本数据。
它是互联网上最常用的协议之一,被广泛应用于万维网(World Wide Web)中。
二、目的本协议的目的是规定HTTP通信的标准格式,确保客户端和服务器之间的数据传输顺利进行。
通过遵循本协议,可以实现信息的快速、准确和可靠的传输。
三、范围本协议适合于所有使用HTTP协议进行通信的客户端和服务器。
四、术语定义1. 客户端:发起HTTP请求的设备或者应用程序。
2. 服务器:接收并处理HTTP请求的设备或者应用程序。
3. 请求:客户端向服务器发起的数据传输请求。
4. 响应:服务器对客户端请求的回应数据。
五、协议规范1. 请求格式客户端向服务器发送请求时,应按照以下格式构造HTTP请求:```<方法> <URL> <协议版本><请求头部字段1>: <值1><请求头部字段2>: <值2>...<请求头部字段N>: <值N><请求正文>```- 方法:指定请求的类型,常见的方法有GET、POST、PUT、DELETE等。
- URL:请求的目标资源的地址。
- 协议版本:HTTP协议的版本号,如HTTP/1.1。
- 请求头部字段:附加的请求信息,如User-Agent、Content-Type等。
- 请求正文:可选,包含请求的数据。
2. 响应格式服务器对客户端请求的回应应按照以下格式构造HTTP响应:```<协议版本> <状态码> <状态码描述><响应头部字段1>: <值1><响应头部字段2>: <值2>...<响应头部字段N>: <值N><响应正文>```- 协议版本:HTTP协议的版本号,如HTTP/1.1。
http协议格式详解
http协议格式详解[HTTP协议格式详解]⼀、URI结构HTTP使⽤统⼀资源标识符(URI)来传输数据和建⽴连接。
URL(统⼀资源定位符)是⼀种特殊种类的URI,包含了⽤于查找的资源的⾜够的信息,我们⼀般常⽤的就是URL,⽽⼀个完整的URL包含下⾯⼏部分:1.协议部分该URL的协议部分为http:,表⽰⽹页⽤的是HTTP协议,后⾯的//为分隔符2.域名部分域名是,发送请求时,需要向DNS服务器解析IP。
如果为了优化请求,可以直接⽤IP作为域名部分使⽤3.端⼝部分域名后⾯的80表⽰端⼝,和域名之间⽤:分隔,端⼝不是⼀个URL的必须的部分。
如果端⼝是80,也可以省略不写4.虚拟⽬录部分从域名的第⼀个/开始到最后⼀个/为⽌,是虚拟⽬录的部分。
其中,虚拟⽬录也不是URL必须的部分,本例中的虚拟⽬录是/mix/5.⽂件名部分从域名最后⼀个/开始到?为⽌,是⽂件名部分;如果没有?,则是从域名最后⼀个/开始到#为⽌,是⽂件名部分;如果没有?和#,那么就从域名的最后⼀个/从开始到结束,都是⽂件名部分。
本例中的⽂件名是76.html,⽂件名也不是⼀个URL的必须部分,如果没有⽂件名,则使⽤默认⽂件名6.锚部分从#开始到最后,都是锚部分。
本部分的锚部分是first,锚也不是⼀个URL必须的部分7.参数部分从开始到#为⽌之间的部分是参数部分,⼜称为搜索部分、查询部分。
本例中的参数是name=kelvin&password=123456,如果有多个参数,各个参数之间⽤&作为分隔符。
⼆、RequestHTTP的请求包括:请求⾏(request line)、请求头部(header)、空⾏和请求数据四个部分组成。
get请求没有请求体。
三、Response1.状态⾏状态⾏由协议版本号、状态码、状态消息组成2.响应头响应头是客户端可以使⽤的⼀些信息,如:Date(⽣成响应的⽇期)、Content-Type(MIME类型及编码格式)、Connection(默认是长连接)等等3.空⾏响应头和响应体之间必须有⼀个空⾏4.响应体响应正⽂,本例中是键值对信息四、⼯作原理HTTP协议采⽤请求/响应模式,客户端向服务器发送⼀个请求报⽂,然后服务器响应请求。
对HTTP协议简单的理解
对HTTP协议简单的理解主要有两种比较重要的机制,在这里总结一下:一,连接机制;HTTP/1.1支持两种连接机制,一种是非持久连接,第二种是持久连接。
基本上默认是使用持久连接,因为这样能够减少建立连接时候的网络延时与CPU消耗。
其中服务器与客户端都会假定连接没有关闭,除非对方传来的头文件包含" Connection:close",不然连接将继续保持。
客户端,服务器与代理都可以随时结束连接,而他们也应该有一套机制去重新搭建起连接,并保持正确性。
每个客户端也只能与一个服务器保持两条连接。
代理也只能保持2N 条连接,N 为代理的活跃用户数。
对于连接的时候,由用户向服务器端发送一个带有"Expect"的信息到服务器端,服务器端如果连接正常则返回一个100 ( continue )的信息到客户端,提示客户端可以继续发送。
HTTP对于传输道路上的元素也有一定的要求。
也规定了不透明代理可以改变哪些字段,而不能改变哪些字段。
二.缓存机制;HTTP中使用缓存主要有两个作用,一个是在很多情况下可以减少发送包,减少网络IO,使用“过期”机制来处理;第二个是可以减少发送整包的操作,减少带宽需求,使用“验证”机制来处理。
(1)“过期”机制(Expiration Model),用于服务器端制定一个“过期时间”,主要有两种计算方式,按优先级顺序,第一种是年龄(Age),第二种是过期时间(Expiration)。
对于第一种,服务器会提供一个年龄字段(Age)与一个有效年龄(max-age),而年龄的计算,则是采用服务器生成时的初始年龄再加上从服务器生成至缓存的时间。
如果有Age 这个字段的存在,则说明这个消息不是第一手的,中间有缓存的存在。
而要计算一个消息是否过期,则需要采用以下的方法:if(max_age_value )Freshness_lifetime = max_age_value ;ElseFreshness_lifetime = expires_value - date_value ;Response_is_fresh = ( freshness_lifetime>current_age ) ;总体计算方法都比较直观与简单,而如果需要更新缓存的话,则可以加入以下字段:Cache-Control : max-age = 0 ; OR Cache-Control : no-cache ;(2)验证机制(Validation Model ) ,采用这种机制的时候,缓存先向服务器验证当前的缓存条目是否最新的,则收到304的提示表示 Not Modified,条目是最新的。
HTTP协议解析
HTTP协议解析HTTP(Hypertext Transfer Protocol)即超文本传输协议,是一种用于在Web浏览器和Web服务器之间传输数据的协议。
它是建立在TCP/IP协议之上的应用层协议,定义了客户端和服务器之间进行通信的规则和格式。
本文将对HTTP协议进行解析,从其原理、组成,以及常见的请求和响应过程等方面进行探讨。
一、HTTP原理HTTP是无状态的协议,即每个请求和响应之间是独立的,服务器不会保留任何关于之前请求的信息。
这主要是为了让服务器端尽量减少存储信息的负担,提高运行效率。
为了解决这个问题,HTTP引入了Cookie机制,允许服务器向客户端发送一个小型文本文件,以便通过存储和检索信息来维持HTTP会话状态。
二、HTTP组成HTTP消息由请求消息和响应消息组成。
请求消息由请求行、请求头部和请求正文三部分组成,而响应消息由状态行、响应头部和响应正文三部分组成。
1. 请求行请求行由请求方法、请求路径和协议版本三部分组成。
常见的请求方法有GET、POST、PUT、DELETE等。
请求路径指明了请求的资源路径,协议版本通常为HTTP/1.1。
2. 请求头部请求头部包含了请求的相关信息,如Host、User-Agent、Accept等。
其中Host字段标识了请求的服务器主机名和端口号,User-Agent字段标识了请求的客户端信息,而Accept字段标识了客户端能够接受的媒体类型。
3. 请求正文请求正文可选,主要用于向服务器发送额外的数据,如表单数据等。
4. 状态行状态行由协议版本、状态码和状态描述三部分组成。
协议版本通常为HTTP/1.1,状态码用于表示请求的处理结果,如200表示成功,404表示资源未找到,500表示服务器内部错误等。
5. 响应头部响应头部包含了响应的相关信息,如Content-Type、Content-Length、Set-Cookie等。
其中Content-Type字段标识了响应的媒体类型,Content-Length字段标识了响应正文的长度,Set-Cookie字段用于设置Cookie。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蜜果私塾:http协议学习系列——协议详解篇文:阿蜜果日期:2009-12-22. 协议详解篇2.1 HTTP/1.0和HTTP/1.1的比较RFC 1945定义了HTTP/1.0版本,RFC 2616定义了HTTP/1.1版本。
笔者在blog上提供了这两个RFC中文版的下载地址。
RFC1945下载地址:/Files/amigoxie/RFC1945(HTTP)中文版.rarRFC2616下载地址:/Files/amigoxie/RFC2616(HTTP)中文版.rar2.1.1建立连接方面HTTP/1.0 每次请求都需要建立新的TCP连接,连接不能复用。
HTTP/1.1 新的请求可以在上次请求建立的TCP连接之上发送,连接可以复用。
优点是减少重复进行TCP三次握手的开销,提高效率。
注意:在同一个TCP连接中,新的请求需要等上次请求收到响应后,才能发送。
2.1.2 Host域HTTP1.1在Request消息头里头多了一个Host域, HTTP1.0则没有这个域。
Eg:GET /pub/WWW/TheProject.html HTTP/1.1Host: 可能HTTP1.0的时候认为,建立TCP连接的时候已经指定了IP地址,这个IP地址上只有一个host。
2.1.3日期时间戳(接收方向)无论是HTTP1.0还是HTTP1.1,都要能解析下面三种date/time stamp:Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format(发送方向)HTTP1.0要求不能生成第三种asctime格式的date/time stamp;HTTP1.1则要求只生成RFC 1123(第一种)格式的date/time stamp。
2.1.4状态响应码状态响应码100 (Continue) 状态代码的使用,允许客户端在发request消息body之前先用request header试探一下server,看server要不要接收request body,再决定要不要发request body。
客户端在Request头部中包含Expect: 100-continueServer看到之后呢,如果回100 (Continue) 这个状态代码,客户端就继续发request body。
这个是HTTP1.1才有的。
另外在HTTP/1.1中还增加了101、203、205等等性状态响应码2.1.5请求方式HTTP1.1增加了OPTIONS, PUT, DELETE, TRACE, CONNECT这些Request方法.Method = "OPTIONS" ; Section 9.2| "GET" ; Section 9.3| "HEAD" ; Section 9.4| "POST" ; Section 9.5| "PUT" ; Section 9.6| "DELETE" ; Section 9.7| "TRACE" ; Section 9.8| "CONNECT" ; Section 9.9| extension-methodextension-method = token2.2 HTTP请求消息2.2.1请求消息格式请求消息格式如下所示:请求行通用信息头|请求头|实体头CRLF(回车换行)实体内容其中“请求行”为:请求行= 方法[空格] 请求URI [空格] 版本号[回车换行]请求行实例:Eg1:GET /index.html HTTP/1.1Eg2:POST http://192.168.2.217:8080/index.jsp HTTP/1.1HTTP请求消息实例:GET /hello.htm HTTP/1.1Accept: */*Accept-Language: zh-cnAccept-Encoding: gzip, deflateIf-Modified-Since: Wed, 17 Oct 2007 02:15:55 GMTIf-None-Match: W/"158-1192587355000"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Host: 192.168.2.162:8080Connection: Keep-Alive2.2.2请求方法HTTP的请求方法包括如下几种:❑GET❑POST❑HEAD❑PUT❑DELETE❑OPTIONS❑TRACE❑CONNECT2.3 HTTP响应消息2.3.1响应消息格式HTTP响应消息的格式如下所示:状态行通用信息头|响应头|实体头CRLF实体内容其中:状态行= 版本号[空格] 状态码[空格] 原因[回车换行] 状态行举例:Eg1:HTTP/1.0 200 OKEg2:HTTP/1.1 400 Bad RequestHTTP响应消息实例如下所示:HTTP/1.1 200 OKETag: W/"158-1192590101000"Last-Modified: Wed, 17 Oct 2007 03:01:41 GMTContent-Type: text/htmlContent-Length: 158Date: Wed, 17 Oct 2007 03:01:59 GMTServer: Apache-Coyote/1.12.3.2 http的状态响应码2.3.2.1 1**:请求收到,继续处理100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本2.3.2.2 2**:操作成功收到,分析、接受200——交易成功201——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件206——服务器已经完成了部分用户的GET请求2.3.2.3 3**:完成此请求必须进一步处理300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL或访问方式304——客户端已经执行了GET,但文件未变化305——请求的资源必须从服务器指定的地址得到306——前一版本HTTP中使用的代码,现行版本中不再使用307——申明请求的资源临时性删除2.3.2.4 4**:请求包含一个错误语法或不能完成400——错误请求,如语法错误401——未授权HTTP 401.1 - 未授权:登录失败HTTP 401.2 - 未授权:服务器配置问题导致登录失败HTTP 401.3 - ACL 禁止访问资源HTTP 401.4 - 未授权:授权被筛选器拒绝HTTP 401.5 - 未授权:ISAPI 或CGI 授权失败402——保留有效ChargeTo头响应403——禁止访问HTTP 403.1 禁止访问:禁止可执行访问HTTP 403.2 - 禁止访问:禁止读访问HTTP 403.3 - 禁止访问:禁止写访问HTTP 403.4 - 禁止访问:要求SSLHTTP 403.5 - 禁止访问:要求SSL 128HTTP 403.6 - 禁止访问:IP 地址被拒绝HTTP 403.7 - 禁止访问:要求客户证书HTTP 403.8 - 禁止访问:禁止站点访问HTTP 403.9 - 禁止访问:连接的用户过多HTTP 403.10 - 禁止访问:配置无效HTTP 403.11 - 禁止访问:密码更改HTTP 403.12 - 禁止访问:映射器拒绝访问HTTP 403.13 - 禁止访问:客户证书已被吊销HTTP 403.15 - 禁止访问:客户访问许可过多HTTP 403.16 - 禁止访问:客户证书不可信或者无效HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效404——没有发现文件、查询或URl405——用户在Request-Line字段定义的方法不允许406——根据用户发送的Accept拖,请求资源不可访问407——类似401,用户必须首先在代理服务器上得到授权408——客户端没有在用户指定的饿时间内完成请求409——对当前资源状态,请求不能完成410——服务器上不再有此资源且无进一步的参考地址411——服务器拒绝用户定义的Content-Length属性请求412——一个或多个请求头字段在当前请求中错误413——请求的资源大于服务器允许的大小414——请求的资源URL长于服务器允许的长度415——请求资源不支持请求项目格式416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。
2.3.2.5 5**:服务器执行一个完全有效请求失败HTTP 500 - 内部服务器错误HTTP 500.100 - 内部服务器错误- ASP 错误HTTP 500-11 服务器关闭HTTP 500-12 应用程序重新启动HTTP 500-13 - 服务器太忙HTTP 500-14 - 应用程序无效HTTP 500-15 - 不允许请求global.asaError 501 - 未实现HTTP 502 - 网关错误2.4 使用telnet进行http测试在Windows下,可使用命令窗口进行http简单测试。
输入cmd进入命令窗口,在命令行键入如下命令后按回车:telnet 80而后在窗口中按下“Ctrl+]”后按回车可让返回结果回显。
接着开始发请求消息,例如发送如下请求消息请求baidu的首页消息,使用的HTTP协议为HTTP/1.1:GET /index.html HTTP/1.1注意:copy如上的消息到命令窗口后需要按两个回车换行才能得到响应的消息,第一个回车换行是在命令后键入回车换行,是HTTP协议要求的。
第二个是确认输入,发送请求。
可看到返回了200 OK的消息,如下图所示:可看到,当采用HTTP/1.1时,连接不是在请求结束后就断开的。