http请求响应过程
HTTP请求方式中8种请求方法
HTTP请求⽅式中8种请求⽅法简单介绍HTTP请求的⽅法:HTTP/1.1协议中共定义了⼋种⽅法(有时也叫“动作”),来表明Request-URL指定的资源不同的操作⽅式HTTP1.0定义了三种请求⽅法: GET, POST 和 HEAD⽅法。
HTTP1.1新增了五种请求⽅法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT ⽅法1、OPTIONS返回服务器针对特定资源所⽀持的HTTP请求⽅法,也可以利⽤向web服务器发送‘*’的请求来测试服务器的功能性2、HEAD向服务器索与GET请求相⼀致的响应,只不过响应体将不会被返回。
这⼀⽅法可以再不必传输整个响应内容的情况下,就可以获取包含在响应⼩消息头中的元信息。
3、GET向特定的资源发出请求。
注意:GET⽅法不应当被⽤于产⽣“副作⽤”的操作中,例如在Web Application中,其中⼀个原因是GET可能会被⽹络蜘蛛等随意访问。
Loadrunner中对应get请求函数:web_link和web_url4、POST向指定资源提交数据进⾏处理请求(例如提交表单或者上传⽂件)。
数据被包含在请求体中。
POST请求可能会导致新的资源的建⽴和/或已有资源的修改。
Loadrunner中对应POST请求函数:web_submit_data,web_submit_form5、PUT向指定资源位置上传其最新内容6、DELETE请求服务器删除Request-URL所标识的资源7、TRACE回显服务器收到的请求,主要⽤于测试或诊断8、CONNECTHTTP/1.1协议中预留给能够将连接改为管道⽅式的代理服务器。
注意:1)⽅法名称是区分⼤⼩写的,当某个请求所针对的资源不⽀持对应的请求⽅法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不⽀持对应的请求⽅法时,应返回状态码501(Not Implemented)。
HTTP请求报文和HTTP响应报文(转载)
HTTP请求报⽂和HTTP响应报⽂(转载)本⽂转载⾃,感谢作者~HTTP报⽂是⾯向⽂本的,报⽂中的每⼀个字段都是⼀些ASCII码串,各个字段的长度是不确定的。
HTTP有两类报⽂:请求报⽂和响应报⽂。
HTTP请求报⽂⼀个HTTP请求报⽂由请求⾏(request line)、请求头部(header)、空⾏和请求数据4个部分组成,下图给出了请求报⽂的⼀般格式。
or<request-line><headers><blank line>[<request-body>1.请求头请求⾏由请求⽅法字段、URL字段和HTTP协议版本字段3个字段组成,它们⽤空格分隔。
例如,GET /index.html HTTP/1.1。
HTTP协议的请求⽅法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
⽽常见的有如下⼏种:1).GET最常见的⼀种请求⽅式,当客户端要从服务器中读取⽂档时,当点击⽹页上的链接或者通过在浏览器的地址栏输⼊⽹址来浏览⽹页的,使⽤的都是GET⽅式。
GET⽅法要求服务器将URL定位的资源放在响应报⽂的数据部分,回送给客户端。
使⽤GET⽅法时,请求参数和对应的值附加在URL后⾯,利⽤⼀个问号(“?”)代表URL的结尾与请求参数的开始,传递参数长度受限制。
例如,/index.jsp?id=100&op=bind,这样通过GET⽅式传递的数据直接表⽰在地址中,所以我们可以把请求结果以链接的形式发送给好友。
以⽤google搜索domety为例,Request格式如下:GET /search?hl=zh-CN&source=hp&q=domety&aq=f&oq= HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint,application/msword, application/x-silverlight, application/x-shockwave-flash, */*Referer: <a href="/">/</a>Accept-Language: zh-cnAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; TheWorld)Host: <a href=""></a>Connection: Keep-AliveCookie: PREF=ID=80a06da87be9ae3c:U=f7167333e2c3b714:NW=1:TM=1261551909:LM=1261551917:S=ybYcq2wpfefs4V9g;NID=31=ojj8d-IygaEtSxLgaJmqSjVhCspkviJrB6omjamNrSm8lZhKy_yMfO2M4QMRKcH1g0iQv9u-2hfBW7bUFwVh7pGaRUb0RnHcJU37y-FxlRugatx63JLv7CWMD6UB_O_r可以看到,GET⽅式的请求⼀般不包含”请求内容”部分,请求数据以地址的形式表现在请求⾏。
HTTP请求(GET与POST区别)和响应(get是从服务器上获取数据,post是向服务器。。。
HTTP请求(GET与POST区别)和响应(get是从服务器上获取数据,post是向服务器。
HTTP有两部分组成:请求与响应,下⾯分别整理。
⼀.HTTP请求1.HTTP请求格式:<request line><headers><blank line>[<request-body>]在HTTP请求中,第⼀⾏必须是⼀个请求⾏(request line),⽤来说明请求类型、要访问的资源以及使⽤的HTTP版本。
紧接着是⼀个⾸部(header)⼩节,⽤来说明服务器要使⽤的附加信息。
在⾸部之后是⼀个空⾏,再此之后可以添加任意的其他数据[称之为主体(body)]。
2.GET与POST区别HTTP 定义了与服务器交互的不同⽅法,最基本的⽅法是 GET 和 POST(Ajax开发,关⼼的只有GET请求和POST请求)。
GET与POST⽅法有以下区别:(1)在客户端,Get⽅式在通过URL提交数据,数据在URL中可以看到;POST⽅式,数据放置在HTML HEADER内提交。
(2) GET⽅式提交的数据最多只能有1024字节,⽽POST则没有此限制。
(3)安全性问题。
正如在(1)中提到,使⽤ Get 的时候,参数会显⽰在地址栏上,⽽ Post 不会。
所以,如果这些数据是中⽂数据⽽且是⾮敏感数据,那么使⽤ get;如果⽤户输⼊的数据不是中⽂字符⽽且包含敏感数据,那么还是使⽤ post为好。
(4)安全的和幂等的。
所谓安全的意味着该操作⽤于获取信息⽽⾮修改信息。
幂等的意味着对同⼀ URL 的多个请求应该返回同样的结果。
完整的定义并不像看起来那样严格。
换句话说,GET 请求⼀般不应产⽣副作⽤。
从根本上讲,其⽬标是当⽤户打开⼀个链接时,她可以确信从⾃⾝的⾓度来看没有改变资源。
⽐如,新闻站点的头版不断更新。
虽然第⼆次请求会返回不同的⼀批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。
http一次完整的访问过程
一次完整的HTTP事务
贾贺飞
···
1/8
01 域名解析
搜索浏览器自身的DNS缓存 操作系统自身的DNS缓存 读取hosts文件
···
(chrome://net-internals/#dns)
(Windows:ipconfig /displaydns) (C:\Windows\System32\drivers\etc)
状态行statusline响应头部headers空行blankline响应数据responsebody05浏览器解析html代码并请求html代码中的资源浏览器拿到indexhtml文件解析其中的html代码向服务器端去请求下载keepalive特性建立一次http连接可以请求多个资源06浏览器对页面进行渲染呈现给用户若connection模式为close则服务器主动关闭tcp连接客户端被动关闭连接释放tcp连接
DNS服务器
2/8
02 发起TCP的3次握手
···
1) Client首先发送一个连接试探, ACK=0 表示确认号无效,SYN = 1 表 示这是一个连接请求或连接接受报 文; 2) Server监听到连接请求报文后 ,如同意建立连接,则向Client发 送确认; 3) Client收到确认后还需再次发送 确认,同时携带要发送给Server的 数据。
http解析html代码,并请求html代码中的资源
···
浏览器拿到index.html文件 解析其中的html代码
向服务器端去请求下载
keep-alive特性,建立一次HTTP连接,可 以请求多个资源
6/8
06 浏览器对页面进行渲染呈现给用户
···
浏览器将请求到的静态资源和html代码进行渲染,渲染之后呈现给用户
Http请求详解(转)----请求+响应各字段详解
Http请求详解(转)----请求+响应各字段详解参考1. HTTP请求格式⾸先介绍HTTP协议:(HTTP,HyperText Transfer Protocol)是上应⽤最为⼴泛的⼀种。
所有的⽂件都必须遵守这个标准。
⼯作原理:1. 由HTTP客户端发起⼀个请求,建⽴⼀个到服务器指定端⼝(默认是)的TCP连接。
连接2. HTTP服务器则在那个端⼝监听客户端发送过来的请求。
⼀旦收到请求,请求3. 服务器(向客户端)发回⼀个状态⾏,⽐如"HTTP/1.1 200 OK",和(响应的)消息,消息的消息体可能是请求的⽂件、错误消息、或者其它⼀些信息。
响应4. 客户端接收服务器所返回的信息通过浏览器显⽰在⽤户的显⽰屏上,然后客户机与服务器断开连接显⽰内容HTTP使⽤TCP⽽不是UDP的原因在于(打开)⼀个⽹页必须传送很多数据,⽽TCP协议提供传输控制,按顺序组织数据,和错误纠正。
做过Socket编程的⼈都知道,当我们设计⼀个通信协议时,“消息头/消息体”的分割⽅式是很常⽤的,消息头告诉对⽅这个消息是⼲什么的,消息体告诉对⽅怎么⼲。
HTTP协议传输的消息也是这样规定的,每⼀个HTTP包都分为HTTP头和HTTP体两部分,消息体是可选的,⽽消息头是必须的。
每当我们打开⼀个⽹页,在上⾯点击右键,选择“查看源⽂件”,这时看到的HTML代码就是HTTP的消息体,那么消息头可以通过浏览器的开发⼯具或者插件可以看到,如果⽕狐的Firebug,IE的Httpwatch。
HTTP请求是指:客户端通过发送 HTTP 请求向服务器请求对资源的访问。
它向服务器传递了⼀个数据块,也就是请求信息,HTTP 请求由三部分组成:请求⾏、请求头和请求正⽂。
请求⾏:请求⽅法 URI 协议/版本请求头(Request Header)请求正⽂下⾯是⼀个HTTP请求的数据:POST /index.html HTTP/1.1 请求⽅法 url 协议/版本号Host: localhost 主机地址User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-cn,zh;q=0.5Accept-Encoding: gzip, deflateConnection: keep-aliveReferer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a>Content-Length:25Content-Type:application/x-www-form-urlencoded请求空⾏标志着请求头结束,请求正⽂(请求体)的开始username=aa&password=12341、请求⾏:请求⽅法URI协议/版本请求的第⼀⾏是“⽅法 URL 协议/版本”,并以回车换⾏作为结尾。
http流程
http流程HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的通信协议,是构建Web应用程序的基础。
在这篇文章中,我们将介绍HTTP的一般流程。
HTTP是基于客户端-服务器模型的协议,其中客户端通过发送HTTP请求来请求服务,服务器则通过发送HTTP响应来提供服务。
以下是HTTP的一般流程:1. 客户端发起请求:首先,客户端(例如浏览器)需要向服务器发送HTTP请求。
该请求通常由请求方法(例如GET、POST等)、请求头和请求体组成。
请求方法指定了客户端希望服务器执行的操作,例如获取资源、提交表单等。
2. 服务器处理请求:当服务器接收到客户端的请求后,它会根据请求方法和请求URL(Uniform Resource Locator)来确定要执行的操作。
服务器可能需要访问数据库、处理业务逻辑等。
3. 服务器发送响应:一旦服务器完成请求的处理,它会生成一个HTTP响应并将其发送回客户端。
响应通常包括状态码、响应头和响应体。
状态码用于指示请求的结果,例如200表示成功,404表示未找到,500表示服务器错误等。
4. 客户端接收响应:客户端接收到服务器发送的HTTP响应后,它会解析响应并根据需要进行处理。
例如,如果客户端接收到的是HTML响应,它可能会将其渲染为可视化的网页。
这是HTTP的基本流程。
然而,为了更好地保证通信的安全性和可靠性,现代的Web通信中通常还会涉及其他的步骤,例如:1. 建立安全连接:为了保护通信的安全性,客户端和服务器之间通常会建立安全连接。
一种常见的方法是使用HTTPS (HTTP Secure),它在HTTP的基础上添加了加密和身份验证的功能。
2. 身份验证:当客户端发送请求时,服务器可能需要对客户端进行身份验证,以确保只有经过授权的用户才能访问受保护的资源。
身份验证通常使用用户名和密码或令牌进行。
3. 会话管理:为了实现跨请求的状态保持,服务器可以使用会话管理技术。
http请求处理流程(讲的很清楚)
.NET平台处理HTTP请求.NET平台处理HTTP请求的过程大致如下:1、 IIS得到一个请求;2、查询脚本映射扩展,然后把请求映射到aspnet_isapi.dll文件3、代码进入工作者进程(IIS5里是aspnet_wp.exe;IIS6里是w3wp.exe),工作者进程也叫辅助进程;4、 .NET运行时被加载;5、非托管代码调用IsapiRuntime.ProcessRequest()方法;6、每一个请求调用一个IsapiWorkerRequest;7、使用WorkerRequest调用HttpRuntime.ProcessRequest()方法;8、通过传递进来的WorkerRequest创建一个HttpContext对象9、通过把上下文对象作为参数传递给HttpApplication.GetApplicationInstance(),然后调用该方法,从应用程序池中获取一个HttpApplication实例;10、调用HttpApplication.Init(),启动管道事件序列,钩住模块和处理器;11、调用HttpApplicaton.ProcessRequest,开始处理请求;12、触发管道事件;13、调用HTTP处理器和ProcessRequest方法;14、把返回的数据输出到管道,触发处理请求后的事件。
当客户端向Web服务器请求一个页面文件时,这个HTTP请求会被inetinfo.exe 进程截获(WWW服务),它判断文件后缀,如果是*.aspx、*.asmx等,就把这个请求转交给aspnet_isapi.dll,而aspnet_isapi.dll则会通过一个Http PipeLine 的管道,将这个HTTP请求发送给w3wq.exe进程,当这个HTTP请求进入w3wq.exe 进程之后, framework就会通过HttpRuntime来处理这个HTTP请求,处理完毕后将结果返回给客户端。
在浏览器中输入URL后,执行的全部过程。会用到哪些协议?(一次完整的HTTP请求过程)
在浏览器中输⼊URL后,执⾏的全部过程。
会⽤到哪些协议?(⼀次完整的HTTP请求过程)在浏览器中输⼊URL后,执⾏的全部过程。
会⽤到哪些协议?(⼀次完整的HTTP请求过程)整个流程如下: 域名解析 为了将消息从你的PC上传到服务器上,需要⽤到IP协议、ARP协议和OSPF协议。
发起TCP的三次握⼿ 建⽴TCP连接后发起HTTP请求 服务器响应HTTP请求 浏览器解析html代码,并请求HTML代码中的资源(如js、css、图⽚等) 断开TCP连接 浏览器对页⾯进⾏渲染呈现给⽤户域名解析⽐如要查询的IP地址: 1、浏览器搜索⾃⼰的DNS缓存(维护⼀张域名与IP地址的对应表); 2、若没有,则搜索操作系统中的DNS缓存(维护⼀张域名与IP地址的对应表); 3、若没有,则搜索操作系统的hosts⽂件(Windows环境下,维护⼀张域名与IP地址的对应表); 4、若没有,则操作系统将域名发送⾄本地域名服务器---(递归查询⽅式),本地域名服务器查询⾃⼰的DNS缓存,查找成功则返回结果,否则,(以下是迭代查询⽅式) 4.1. 本地域名服务器向根域名服务器(其虽然没有每个域名的具体信息,但存储了负责每个域,如com、net、org等解析的顶级域名服务器的地址)发起请求,此处,根域名服务器返回com域的顶级域名服务器的地址; 4.2. 本地域名服务器向com域的顶级域名服务器发起请求,返回权限域名服务器(权限域名服务器,⽤来保存该区中的所有主机域名到IP地址的映射)地址; 4.3. 本地域名服务器向权限域名服务器发起请求,得到的IP地址; 5、本地域名服务器将得到的IP地址返回给操作系统,同时⾃⼰也将IP地址缓存起来; 6、操作系统将IP地址返回给浏览器,同时⾃⼰也将IP地址缓存起来; 7、⾄此,浏览器已经得到了域名对应的IP地址;ARP(地址解析协议) ARP解决的是同⼀个局域⽹内,主机或路由器的IP地址和MAC地址的映射问题。
http的工作原理
http的工作原理HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,它的工作原理如下:1. 客户端发起请求:客户端(通常是浏览器)向服务器发送HTTP请求。
请求包括请求的方法(GET、POST等)、要访问的资源的URL地址、HTTP协议版本等信息。
2. 服务器响应请求:服务器收到客户端的请求后,根据请求的内容进行处理。
服务器首先会解析请求的URL,然后根据URL找到对应的资源文件。
服务器会生成一个HTTP响应包,包括响应的状态码(表示请求是否成功)、以及响应的内容等。
3. 建立连接:在客户端和服务器之间建立TCP连接,通过TCP协议来进行数据传输。
客户端和服务器通过三次握手确认连接的建立。
4. 数据传输:通过TCP连接,服务器将生成的HTTP响应包发送回客户端。
客户端接收到响应包后,对包进行解析,提取其中的内容。
5. 断开连接:完成数据传输后,TCP连接会被断开,释放系统资源。
需要注意的是,HTTP是无状态的协议,即服务器不会保存之前的状态信息。
每个请求-响应的过程是独立的,服务器不会区分不同客户端的请求。
为了保持状态,服务器通常使用一些机制,如Cookie或Session来跟踪客户端的状态。
此外,HTTP还支持多种请求方法,常用的有GET(请求获取指定资源)、POST(向指定资源提交数据)、PUT(请求服务器存储一个资源)和DELETE(请求服务器删除指定的资源)等。
总结起来,HTTP的工作原理是客户端向服务器发送请求,服务器根据请求的内容进行处理,生成HTTP响应包并发送回客户端,客户端接收并解析响应。
通过TCP协议进行数据传输,完成后断开连接。
Http请求处理流程
Http请求处理流程HTTP请求处理是指在客户端发送HTTP请求到服务器端,服务器接收请求并处理后返回给客户端的整个过程。
下面将详细介绍HTTP请求处理的流程。
1.建立TCP连接客户端通过TCP协议与服务器建立连接。
TCP是一个可靠的传输协议,通过三次握手来确保客户端和服务器之间的连接可靠性。
2.发送请求报文客户端通过建立的TCP连接向服务器发送HTTP请求报文。
HTTP请求报文包括请求行、请求头部和请求体。
请求行包括请求方法、请求URL和HTTP协议版本。
请求头部包括一些请求的附加信息,如User-Agent、Host等,以及一些用于验证身份和权限的信息。
请求体一般用于POST请求,包含了需要向服务器传递的数据。
3.服务器接收请求服务器通过监听端口来接收客户端发送的请求报文。
一般情况下,服务器使用多线程或多进程的方式来处理请求,以便同时处理多个请求。
4.解析请求报文服务器解析收到的请求报文,获取其中的请求方法、URL和请求头部等信息。
通过解析请求报文,服务器能够了解客户端的请求意图和需求。
5.处理请求6.生成响应报文服务器在处理完请求后,根据请求的结果生成响应报文。
响应报文包括状态行、响应头部和响应体。
状态行包括响应的状态码和对应的状态消息。
响应头部包括一些附加的响应信息,如Content-Type、Content-Length等。
响应体包含了服务器返回给客户端的数据。
7.发送响应报文服务器通过TCP连接将生成的响应报文发送给客户端。
响应报文经过网络传输到客户端。
8.客户端接收响应报文客户端通过TCP连接接收服务器发送的响应报文。
9.解析响应报文客户端解析服务器发送的响应报文,获取其中的状态码和响应头部等信息。
客户端根据状态码和响应头部的信息进行相应的处理。
10.处理响应客户端根据响应的内容进行相应的处理。
根据响应报文中的数据,客户端可以更新界面、显示数据等。
11.关闭连接请求处理完毕后,客户端和服务器通过TCP连接关闭连接。
http工作原理
http工作原理HTTP(HyperText Transfer Protocol)是一种用于传输超文本数据的应用层协议,它是万维网的基础。
HTTP工作原理是指在客户端和服务器之间进行数据传输和通信的过程。
了解HTTP工作原理对于理解网络通信和Web开发非常重要。
首先,HTTP是基于请求-响应模型的。
客户端发送HTTP请求到服务器,服务器收到请求后返回HTTP响应。
这个过程是通过TCP/IP协议来实现的,客户端和服务器之间通过TCP连接进行通信。
当客户端需要访问一个网页时,它会向服务器发送一个HTTP请求。
这个请求包括请求的方法(GET、POST等)、请求的资源路径、HTTP协议版本、请求头部等信息。
服务器收到请求后,会解析请求,然后根据请求的内容进行处理。
服务器处理完请求后,会生成一个HTTP响应,这个响应包括HTTP协议版本、状态码、响应头部和响应体等信息。
服务器将这个响应发送给客户端,客户端接收到响应后进行解析和处理。
HTTP的工作原理中还涉及到缓存、Cookie、会话管理等内容。
通过缓存,客户端和服务器可以减少数据传输和提高访问速度;通过Cookie和会话管理,服务器可以记录客户端的状态和实现用户认证等功能。
另外,HTTP还支持持久连接和管道化连接。
持久连接可以减少TCP连接的建立和断开次数,提高数据传输效率;管道化连接可以在一个TCP连接上发送多个HTTP请求,减少网络延迟,提高性能。
总的来说,HTTP工作原理是一个简单而有效的通信模型,它通过请求-响应模式实现客户端和服务器之间的数据传输和通信。
了解HTTP工作原理有助于我们理解Web开发、网络通信和互联网技术的原理和实现。
希望本文能对你有所帮助。
HTTP协议工作原理工作过程
HTTP协议工作原理工作过程HTTP(Hypertext Transfer Protocol)是一种用于在网络中传输超文本的协议,它是互联网的基础,承载着网页、图片、视频等各种资源的传输和交互。
本文将介绍HTTP协议的工作原理和工作过程。
一、HTTP协议的工作原理HTTP协议是基于客户端-服务器模型的,客户端发送请求,服务器返回响应。
客户端可以是浏览器、手机APP等,服务器可以是网站服务器、API服务器等。
HTTP协议使用TCP/IP作为传输协议,通过建立可靠的TCP连接来传输数据。
TCP是一种面向连接的协议,保证数据的可靠传输。
HTTP协议采用请求-响应模型。
客户端发送HTTP请求,服务器接收并处理请求后返回HTTP响应。
HTTP请求由请求行、请求头、请求体组成,HTTP响应由响应行、响应头、响应体组成。
二、HTTP协议的工作过程1. 建立TCP连接:客户端发起连接请求,与服务器建立TCP连接。
TCP连接建立后可以进行可靠的数据传输。
2. 发送HTTP请求:客户端向服务器发送HTTP请求。
请求由请求行、请求头、请求体组成。
请求行包括请求方法(GET、POST等)、请求URL和协议版本。
请求头包含一些额外的信息,如请求的主机、请求的浏览器等。
请求体包含一些可选的数据,如表单数据、JSON数据等。
3. 服务器处理请求:服务器接收到客户端的请求后,根据请求方法和URL等信息进行处理。
服务器可能从数据库、文件系统等获取资源数据,并进行处理。
4. 返回HTTP响应:服务器将处理结果封装成HTTP响应发送给客户端。
响应由响应行、响应头、响应体组成。
响应行包括响应状态码和状态描述。
响应头包含一些额外的信息,如响应的类型、响应的长度等。
响应体包含实际的响应数据,如网页内容、图片等。
5. 关闭TCP连接:客户端接收到HTTP响应后,会检查响应状态码等信息。
如果需要继续请求其他资源,客户端可以选择保持TCP连接,继续发送HTTP请求。
HTTP完整请求过程
HTTP完整请求过程重要申明:感谢原⽂作者——!我借鉴了原⽂的页⾯请求流程,原⽂见时序图之后正⽂。
重要申明:感谢原⽂作者——!我借鉴了原⽂的完整HTTP请求流程。
增加了时序图,有不妥之处,欢迎指正~~ (未完待续,需要增加后端服务器框架内部处理)⼀、引⾔前端不仅要让⽤户对⽹页有完美的体验,让⽤户尽快体验到完美的⽹页也是很重要的,这就要前端攻城狮掌握⼀些⽹络原理相关的知识了。
这⾥就来聊⼀聊从⽤户输⼊url到页⾯加载完成的过程中都发⽣了什么事情?⼆、正⽂⽤户输⼊url之后⼤致发⽣了以下⼏件事:1. 浏览器查找域名的IP地址。
这⼀步包括DNS具体的查找过程,包括:浏览器缓存 -> 系统缓存 -> 路由器缓存……2. 浏览器向web服务器发送⼀个http请求:三次握⼿、传送数据、四次挥⼿;3. 服务器的永久重定向响应:返回真正访问的地址;4. 浏览器跟踪重定向地址:另发⼀个http请求;5. 服务器处理请求;6. 服务器返回⼀个http响应;7. 浏览器显⽰html页⾯:解析html以构建DOM树 –> 构建渲染树 –> 布局渲染树 –> 绘制渲染树;8. 浏览器发送请求,获取嵌⼊在html中的资源(如图⽚、⾳频、视频、CSS、JS等等);9. 浏览器发送异步请求。
顺便附上http状态码:http状态码详细状态码状态原因1xx消息2xx成功3xx重定向4xx客户端错误5xx服务器错误5xx500接⼝报错了5xx502后端服务没启5xx503启动挂了下⾯我们就详细地了解⼀下这些过程:1. DNS查找IP地址DNS是域名系统(Domain Name System)的缩写,是因特⽹的⼀项核⼼服务。
它作为可以将域名和IP地址相互映射的⼀个分布式数据库,能够使⼈更⽅便的访问互联⽹,⽽不⽤去记住能够被机器直接读取的IP数字串。
1. DNS查找过程:1. 浏览器缓存 —— 浏览器会缓存DNS记录⼀段时间,但是操作系统并没有告诉浏览器储存DNS记录的时间。
http请求的原理
http请求的原理
HTTP请求的原理是基于客户端-服务器模型的通信协议,由
客户端发起请求并由服务器进行响应。
以下是HTTP请求的原理:
1. 客户端建立与服务器的连接:客户端通过发送一个请求来与服务器建立连接。
这个请求包括一个URL,用于标识服务器
资源的位置,以及使用的HTTP协议版本。
2. 服务器解析请求:服务器接收到客户端的请求后,首先解析请求行,获取请求的方法(GET、POST等)、请求的资源路
径以及HTTP协议的版本号。
3. 服务器处理请求:服务器根据请求的内容和服务器的配置进行请求处理。
这可以包括处理表单数据、查询数据库、生成动态内容等。
4. 服务器发送响应:服务器根据请求的处理结果生成一个响应报文,并发送给客户端。
响应报文包括一个状态行,包含了响应的状态码(如200表示成功、404表示未找到资源等),以
及响应的正文。
5. 客户端接收响应:客户端接收到服务器发送的响应后,首先解析响应报文,获取响应的状态码和响应的正文。
6. 客户端处理响应:客户端根据响应的状态码和正文进行处理。
这可以包括展示响应的内容、解析HTML、执行JavaScript代
码等。
7. 客户端关闭连接:客户端在完成所有的处理后,关闭与服务器的连接,释放相关的资源。
以上就是HTTP请求的基本原理。
通过这个过程,客户端和服务器可以进行通信,实现数据交互和资源访问。
http 请求原理
http 请求原理HTTP请求原理是指客户端向服务器发送请求并获取响应的过程。
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,通过TCP/IP协议来实现客户端与服务器之间的通信。
1. 建立TCP连接:客户端通过向服务器发送三次握手请求来建立TCP连接。
这包括客户端发送SYN(同步)包给服务器,服务器接收到后发送SYN+ACK包给客户端,最后客户端发送ACK包给服务器确认连接建立。
2. 发送请求:一旦TCP连接建立,客户端可以向服务器发送HTTP请求。
请求由请求行、请求头和请求体组成。
请求行包含方法、URL和协议版本。
请求头包含一些额外的信息,如User-Agent(客户端的浏览器信息)、Host(服务器地址)等。
请求体通常用于传输一些数据,像POST请求中的表单数据。
3. 服务器处理请求:一旦服务器接收到客户端的请求,它会根据请求的内容进行相应的处理。
这可能包括检查身份认证、查询数据库或执行其他操作。
服务器可以生成响应以满足请求。
4. 发送响应:服务器生成响应后,它将响应状态码、响应头和响应体发送回客户端。
响应状态码表示请求的状态,如200表示成功,404表示未找到等。
响应头包含一些元数据,比如Content-Type(响应数据的类型)和Content-Length(响应数据的长度等)。
响应体包含实际的数据,如HTML页面、图片或其他文件。
5. 关闭连接:一旦响应被成功传送给客户端,服务器会关闭TCP连接。
只有在Keep-Alive模式下,连接可能会保持打开状态以供后续请求和响应使用。
总结起来,HTTP请求原理包括建立TCP连接、发送请求、服务器处理请求、发送响应和关闭连接这几个步骤。
通过这些步骤,客户端可以与服务器进行通信并获取所需的数据。
http请求包含哪几个部分(请求行、请求头、请求体)
http请求包含哪⼏个部分(请求⾏、请求头、请求体)http协议报⽂1.请求报⽂(请求⾏/请求头/请求数据/空⾏)请求⾏求⽅法字段、URL字段和HTTP协议版本例如:GET /index.html HTTP/1.1get⽅法将数据拼接在url后⾯,传递参数受限请求⽅法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT请求头(key value形式)User-Agent:产⽣请求的浏览器类型。
Accept:客户端可识别的内容类型列表。
Host:主机地址请求数据post⽅法中,会把数据以key value形式发送请求空⾏发送回车符和换⾏符,通知服务器以下不再有请求头2.响应报⽂(状态⾏、消息报头、响应正⽂)状态⾏消息报头响应正⽂例如请求数据:1 GET/sample.jspHTTP/1.12 Accept:image/gif.image/jpeg,*/*3 Accept-Language:zh-cn4 Connection:Keep-Alive5 Host:localhost6 User-Agent:Mozila/4.0(compatible;MSIE5.01;Window NT5.0)7 Accept-Encoding:gzip,deflate89 username=jinqiao&password=1234第⼀⾏为http请求⾏,包含⽅法,URI 和http版本2-7为请求头,包含浏览器,主机,接受的编码⽅式和压缩⽅式第8⾏表⽰⼀个空⾏表⽰请求头结束这个空⾏是必须的第9⾏是数据体,⽐如是需要查询的信息。
http响应体由三部分组成:http响应由三个部分组成分别是状态⾏,响应头,响应正⽂。
状态⾏是由:HTTP-Version+Status-Code+Reason-Phrase⽐如:HTTP/1.1 200 ok分别表⽰http版本 + 状态码 + 状态代码的⽂本描述状态码:1xx指⽰信息–表⽰请求已接收,继续处理2xx成功–表⽰请求已被成功接收、理解、接受3xx重定向–要完成请求必须进⾏更进⼀步的操作。
一个请求的生命周期(HTTP请求过程详解、TCPIP五层网络模型)
⼀个请求的⽣命周期(HTTP请求过程详解、TCPIP五层⽹络模型)⼀个请求的⽣命周期前⾔:当我们从电脑上去访问⼀个⽹址时,究竟发⽣了什么?这个问题可能是⾃⼰思考或者⾯试的时候问到,这⾥我们以访问百度⾸页为例,进⾏⼀个全⾯的HTTP请求分析。
核⼼概念计算机⽹络核⼼结构,就是TCP/IP五层⽹络模型(OSI七层模型是将应⽤层分为了三层)以及,每⼀层对应的协议始于本地键盘输⼊:你要访问,⾃然需要在浏览器地址栏中使⽤键盘输⼊(正常情况下),这个过程就涉及到输⼊设备与计算机的交互了,这个属于物理层,这⾥就不探讨了(==其实是我不会)请求域名:⾸先你访问的是,并不带域名,所以浏览器会⾃动补全协议头。
但是我们知道,很多时候域名会有http和https,它俩的默认端⼝⼀个是80,⼀个是443,在这⾥,⼀般都是对应域名的⽹站做了端⼝转发,http协议实现了HSTS机制来使得重定向到HTTPS下的域名。
所以HTTP到HTTPS这个过程是服务器来完成的,⾄于浏览器的默认端⼝⼀直是80端⼝路由转发IP查找:⽬前我们只知道了带协议类型的域名,那么是如何到具体的服务器的呢?我们知道,对于因特⽹内每个公有地址IP都是唯⼀的(局域⽹内不⼀定),域名相当于IP的别名,因为我们⽆法去记住⼀⼤堆⽆意义的IP地址,但如果⽤⼀堆有意义的字母组成,⼤家就能快速访问对应⽹站。
DNS解析:通过域名去查找IP,先从本地缓存查找,其中本地的hosts⽂件也绑定了对应IP,若在本机中⽆法查到,那么就会去请求本地区域的域名服务器(通常是你对应的⽹络运营商如移动),这个通过⽹络设置中的LDNS去查找,如果还是没有命中的话,那么就去根域名服务器查找,这⾥有所有因特⽹上可访问的域名和IP对应信息(根域名服务器全球共13台)。
⾄少到了这⾥,我们肯定能查找对应的IP了,要不就是这个域名不对。
路由转发:然后我们通过⽹卡、路由器、交换机等设备,实现两个IP地址之间的通信。
HTTP请求协议中请求报文(RequestHeaders)跟响应报文(ResponseHe。。。
HTTP请求协议中请求报⽂(RequestHeaders)跟响应报⽂(ResponseHe。
背景 今⼉个⼀新来的应届⽣问我,开发模式中所看到的web请求的请求头⾥的属性怎么理解,我便根据⾃⼰的经验随便拉开⼀个请求跟他聊了起来,顺便⾃⼰记录下⽂字版,以后再有交流直接发地址给他就好了,嘻嘻,机智!题外话: ⼀、构成HTTP请求的简单流程图(图摘录的),如下: Web Client可以是浏览器、搜索引擎、机器⼈等等⼀切基于HTTP协议发起http请求的⼯具。
Web Server可以是任何的能解析HTTP请求,并返回给Web Client可识别的响应的服务,常见的有apache、nginx、IIS等等web服务器。
⼆、客户端跟服务的交互(这图也是摘录的,哈哈) 要看图还不明⽩中过程的话,那就更通俗的理解为:在浏览器中输⼊URL,并按下回车键浏览器向DNS服务器请求解析该URL中的域名对应的IP地址(如果是IP请求,则不需要该步骤)解析出IP后,根据IP和端⼝号,和服务器建⽴连接浏览器向服务器发送请求,该请求报⽂作为TCP三次握⼿的第三个报⽂发送给服务器服务器做出响应,把数据发送给浏览器通信完成,断开TCP连接浏览器解析收到的数据并显⽰ 从中就可以延伸出以下要说的内容了。
也就是交互直接的报⽂,这⾥就简单说说其中请求报⽂跟响应报⽂,主要也是⽅便新⼿简单了解下,具体的底层还是得⾃⼰去查阅资料内容HTTP连接中报⽂分为请求(request)和响应(response)两种。
每种报⽂在HTTP⾸部都有不同的字段来标识不同的⽤途。
1. 请求报⽂:HTTP协议使⽤TCP协议进⾏传输,在应⽤层协议发起交互之前,⾸先是TCP的三次握⼿。
完成了TCP三次握⼿后,客户端会向服务器发出⼀个请求报⽂ 请求头由key/value对组成,每⾏为⼀对,key和value之间通过冒号(:)分割。
请求头的作⽤主要⽤于通知服务端有关于客户端的请求信息HTTP最常见的请求头如下:Accept:浏览器可接受的MIME类型;Accept-Charset:浏览器可接受的字符集;Accept-Encoding:浏览器能够进⾏解码的数据编码⽅式,⽐如gzip。
http流程
http流程HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议,它是全球互联网的基础之一。
在互联网上,HTTP被用来传输各种类型的数据,包括HTML网页、图片、音频、视频等。
本文将介绍HTTP的基本流程,包括请求和响应的过程,以及一些常见的状态码和头部字段。
HTTP的基本流程可以分为请求和响应两个阶段。
在请求阶段,客户端向服务器发送一个HTTP请求,请求的内容可以包括要访问的资源的URL、请求方法(GET、POST等)、请求头部字段等。
服务器在接收到请求后,会根据请求的内容来处理,并生成一个HTTP响应返回给客户端。
在HTTP请求中,URL是一个非常重要的部分,它指定了客户端要访问的资源的地址。
请求方法则指定了客户端对资源的操作,比如GET方法用于请求获取资源,POST方法用于提交数据等。
请求头部字段包括了一些额外的信息,比如客户端的身份标识、所接受的数据类型等。
在服务器接收到请求后,会根据请求的内容来处理,并生成一个HTTP响应返回给客户端。
HTTP响应包括了一个状态行、响应头部字段和响应体。
状态行包括了一个状态码和状态消息,状态码用于表示服务器对请求的处理结果,比如200表示成功,404表示未找到资源等。
响应头部字段包括了一些额外的信息,比如服务器的类型、响应的数据类型等。
响应体则包括了实际的响应数据,比如HTML网页的内容、图片的二进制数据等。
除了基本的请求和响应过程,HTTP还定义了一些常见的状态码和头部字段。
状态码用于表示服务器对请求的处理结果,比如200表示成功,404表示未找到资源,500表示服务器内部错误等。
头部字段包括了一些额外的信息,比如Content-Type用于指定响应的数据类型,Content-Length用于指定响应数据的长度等。
总的来说,HTTP的流程非常简单明了,客户端向服务器发送一个请求,服务器处理请求并返回一个响应。
http协议工作原理
http协议工作原理HTTP协议是指超文本传输协议(Hypertext Transfer Protocol),是一种用于传输超文本(即HTML)数据的规范。
HTTP是基于客户机/服务器模式运作的协议,在Web浏览器和服务器之间进行数据传输。
1. HTTP协议的工作原理HTTP协议是基于TCP/IP协议的应用层协议,一般默认使用80端口。
HTTP协议的通信必须经过客户机和服务器两个程序之间的交互来完成。
下面是HTTP协议的工作过程:(1)当用户在Web浏览器中输入URL(Uniform Resource Locator)时,浏览器会向Web服务器发送HTTP请求。
(2)Web服务器会根据URL中的主机名找到对应的服务器程序,然后将HTTP请求发送给该服务器程序。
(3)服务器程序收到HTTP请求后会按照请求中的命令进行相应的处理,生成HTTP响应。
(4)服务器程序将HTTP响应发送给Web浏览器。
(5)Web浏览器接收到HTTP响应后会对响应进行处理,将HTTP响应中的HTML文档渲染成Web页面,同时将相关的组件(如图片、CSS文件、JavaScript脚本等)进行加工处理,最终呈现给用户。
2. HTTP请求和响应格式HTTP请求和响应需要遵循一定的格式。
下面是HTTP请求和响应的基本格式:(1)HTTP请求格式方法 URI 协议/版本号字段名:字段值字段名:字段值...空行请求正文其中,方法表示请求的类型,常用的方法有GET、POST、HEAD、PUT、DELETE、OPTIONS等;URI表示要请求的资源路径;协议/版本号表示HTTP使用的协议和版本号;字段名和字段值代表一个或多个请求头,用于告知服务器请求的详细信息;请求正文则是要传输的数据内容。
(2)HTTP响应格式协议/版本号状态码状态短语字段名:字段值字段名:字段值...空行响应正文其中,协议/版本号表示HTTP使用的协议和版本号;状态码表示服务器响应的状态,常用的状态码有200、404、500等;状态短语是对状态码的解释;字段名和字段值代表一个或多个响应头,用于告知浏览器响应的详细信息;响应正文则是服务器返回的数据内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
http请求与响应过程(1)请求方法URI协议/版本请求的第一行是“方法URL议/版本”:GET/sample.jsp HTTP/1.1以上代码中“GET”代表请求方法,“/sample.jsp”表示URI,“HTTP/1.1代表协议和协议的版本。
根据HTTP标准,HTTP请求可以使用多种请求方法。
例如:HTTP1.1目前支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。
GET 请求获取由Request-URI所标识的资源。
POST 在Request-URI所标识的资源后附加新的数据。
HEAD 请求获取由Request-URI所标识的资源的响应消息报头。
OPTIONS 请求查询服务器的性能,或查询与资源相关的选项和需求。
PUT 请求服务器存储一个资源,并用Request-URI作为其标识。
DELETE 请求服务器删除由Request-URI所标识的资源。
TRACE 请求服务器回送收到的请求信息,主要用语测试或诊断。
在Internet应用中,最常用的方法是GET和POST。
URI完整地指定了要访问的网络资源,通常只要给出相对于服务器的根目录的相对目录即可,因此总是以“/”开头,最后,协议版本声明了通信过程中使用HTTP的版本。
(2)服务器响应状态码状态代码:状态代码由3位数字组成,表示请求是否被理解或被满足。
状态描述:状态描述给出了关于状态代码的简短的文字描述。
状态代码的第一个数字定义了响应的类别,后面两位没有具体的分类。
第一个数字有五种可能的取值:- 1xx: 指示信息—表示请求已接收,继续处理。
- 2xx: 成功—表示请求已经被成功接收、理解、接受。
- 3xx: 重定向—要完成请求必须进行更进一步的操作。
- 4xx: 客户端错误—请求有语法错误或请求无法实现。
- 5xx: 服务器端错误—服务器未能实现合法的请求。
状态代码状态描述说明200 OK --客户端请求成功400 Bad Request --由于客户端请求有语法错误,不能被服务器所理解。
401 Unauthonzed --请求未经授权,请求身份认证。
这个状态代码必须和WWW-Authenticate报头域一起使用403 Forbidden --服务器收到请求,但是拒绝提供服务。
服务器通常会在响应正文中给出不提供服务的原因404 Not Found --请求的资源不存在,例如,输入了错误的URL。
500 Internal Server Error --服务器发生不可预期的错误,导致无法完成客户端的请求。
503 Service Unavailable --服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。
2.基于HTTP协议的客户端/服务器请求响应机制的信息交换过程包含下面几个步骤:1) 建立连接:客户端与服务器建立TCP连接2) 发送请求:打开一个连接后,客户端把请求信息发送到服务器的相应端口上,完成请求动作提交。
3) 发送响应:服务器在处理完客户端请求之后,要向客户端发送响应消息。
4) 关闭连接:客户端和服务器端都可以关闭套接字来结束TCP/IP对话。
一、HTTP请求响应过程与HTTPS区别HTTP协议HTTP协议主要应用是在服务器和客户端之间,客户端接受超文本。
服务器按照一定规则,发送到客户端(一般是浏览器)的传送通信协议。
与之类似的还有文件传送协议(file transfer protocol,FTP),简单邮件传送协议(simple mail ttransfer protocol,SMTP)等。
HTTP是在七层网络模型中的应用层的协议,由发送请求和接受响应构成,是一个标准的客户端服务器模型。
与此同时,HTTP是一个无状态的协议。
也就是说,不能通过一个状态判断连接的状态,因此有时候,计算机之间通信需要通过其他协议来协同工作,一起提供支持。
HTTP协议的工作特点相对于其他网路传输协议,HTTP有着自己的特点,这也支撑了HTTP协议的基本职能。
(1)基于B/S 模式,即客户/服务器模式。
同时可以提供登陆认证和网间安全传输,例如HTTP下加入SSL层,可以提供安全的HTTPS服务。
(2)通信开销小,简单快速,传输成本低。
服务器请求某些一定的服务时,浏览者通常只需在请求报文中添加请求路径和方法。
最一般的情形,例如GET、HEAD、POST等,这也是我们使用最多的。
每一种请求方法都有自己的适用范围,在请求报文的内部,通过一些规则,说明了用户与Web服务器之间沟通的类型。
同时,HTTP协议规则较为简单,因此使用HTTP服务器的系统,代码和程序规模都会比较轻量级,但是通信的速度却效率较高。
(3)使用灵活:超文本协议,允许服务器和客户端传输任意类型或者任意数据结构的数据对象。
而且,通过一个简单的头信息,例如将正在传输的类型由Content-Type加以标记,于是可以区分开。
(4)节省传输时间:最初版本的HTTP协议使用非持续连接,只允许发送并处理一个连接,当请求响应完成,也就是服务器完成客户端的请求,同时收到了客户端浏览器的应答后,连接会立即断开。
有了这种特点,通信方式节省了大量用于数据传输和等待应答的时间,时间成本变得非常小。
同时,高版本HTTP协议,HTTP 1.1支持持续连接:多个对象可以通过一个连接可传送,不需要每次传输一个web对象就去创建一个新的连接。
(5)可能影响传输效率,无状态:HTTP协议是无状态协议。
无状态,如果协议对于事务处理没有记忆的机制,不能存储处理进度,此时,如果后续的操作需要前面的处理信息,就需要重新发送对象即必须重传,这样的后果是,可能多次连接才能完成操作,数据量会因此变大。
“在服务器端,每个HTTP请求都要启动独立的线程去处理,减少Http请求的数目可以有效提高访问性能(《大型网站技术架构》·李智慧)”。
HTTP协议的工作原理通常情况下,HTTP协议的工作原理很好理解,用户通过客户端向服务端发起一个请求,创建一个TCP连接,指定端口号,默认是80,然后连接到服务器工作。
在那个端口监听浏览器请求。
一旦监听到客户端请求,分析请求类型后,服务器会向客户端返回一个响应状态,比如"HTTP/1.0 404 OK",同时会返回特定的数据内容,如请求的资源,错误代码,其它状态信息等等。
HTTP协议的报文格式HTTP协议的请求报文当浏览器向服务器发送一个请求到Web服务器,它发送一个数据块,或请求信息,HTTP请求信息包括3部分:请求方法URI协议/版本;请求头(Request Header);请求正文;下面是一个HTTP请求的示例:GET/test.jsp HTTP/1.1Accept:image/test.image/jpeg,*/*Accept-Language:zh-cnConnection:Keep-AliveHost:222.35.232.103User-Agent:Mozila/5.0(compatible;MSIE5.01;Window NT5.0)Accept-Encoding:gzip,deflateusername=linuxidc&password=linuxidc(1)请求方法URI协议/版本请求的第一行是“方法/内容URL协议/协议版本名称”:GET/test.jsp HTTP/1.1上面的代码中,“GET”说明请求方法,“/test.jsp”表示网络资源,中间空格,最后说明协议和协议的版本。
根据HTTP标准,HTTP请求可以使用多种不同的请求方法。
例如:HTTP1.1允许支持七种请求方法(也叫“动作”):GET、POST、HEAD、OPTIONS、PUT、DELETE和TARCE。
日常开发中,GET和POST是最常用的方法,主要在相关的Web开发中。
URL路径指定了要访问的网络资源。
一般来说,我们需要的是相对路径,因为确定资源位置,知道网络资源相对于服务器的根目录的路径就可以,所以以“/”开头。
在头信息结束时,声明了通信过程中HTTP协议版本的使用版本。
需要注意,方法名称很重要的一点是严格区分大小写。
有些时候,某个请求所针对的资源可能不支持对应的请求方法,会通过不同的状态码给出响应。
例如,服务器将返回一个状态码405(方法不允许),当请求服务器或方法不理解不支持相应的时间,返回一个状态码501(没有实现)。
(2)请求头(Request Header)请求头包含了一些客户环境和请求的内容信息。
例如,请求头可以声明浏览器内核和语言使用,请求的长度等。
Accept:image/test.image/jpeg.*/*Accept-Language:zh-cnConnection:Keep-AliveHost:222.35.232.103User-Agent:Mozila/5.0(compatible:MSIE5.01:Windows NT5.0)Accept-Encoding:gzip,deflate.(3)请求正文请求正文和请求头要有空行。
这个空行必须存在,说明结束请求头传输,开始传输正文请求。
请求正文中一般包含很多信息,例如用户提交的用户名和密码之类的登陆信息:userlogin=linuxidc¤tpwd=linuxidc在真实应用中,协议的请求正文可以包含大量的信息,而不是如示例的HTTP请求中一样,请求正文只有简单的一行数据。
HTTP协议的响应报文和请求报文类似,HTTP响应主要也是3个部分构成:(1)协议状态版本代码描述(2)响应头(Response Header)(3)响应正文下面是一个HTTP响应的示例:HTTP/1.1 200 OKServer:Apache Tomcat/7.0.1Date:Mon,6Oct2014 13:23:42 GMTContent-Length:102<html><head><title>HTTP响应文件<title></head><body>这是HTTP响应文件!</body></html>客户端向服务器发送请求,和请求报文类似,服务器会以状态行响应。
响应报文包括:HTTP协议的版本、结果编码以及其他的必要信息,如实体信息等。
响应类别不同,响应报文里可以包含或者不含实体内容。
HTTP响应报文的首先是以状态行开始,这些可以参考示例的代码。
响应头也就是报文首部,和请求头首部一样,包含重要的信息,例子中我们可以看到,比如日期时间和服务器类型以及内容长度和数量等。
二、HTTP与HTTPS协议的区别Https是一种基于SSL/TLS的Http协议,所有的http数据都是在SSL/TLS协议封装之上传输的。