aap手机网站建设,删除的网站做404,优秀建筑设计案例,推广方案框架http协议与https Http 客户端发送一个HTTP请求到服务器的请求消息包括以下格式#xff1a; **请求行#xff08;request line#xff09;、请求头部#xff08;header#xff09;、空行 和请求数据四个部分组成。** Get请求例子#xff0c;使用Charles抓取的request… http协议与https Http 客户端发送一个HTTP请求到服务器的请求消息包括以下格式 **请求行request line、请求头部header、空行 和请求数据四个部分组成。** Get请求例子使用Charles抓取的request 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/*,*/*;q0.8 Referer http://www.imooc.com/ Accept-Encoding gzip, deflate, sdch
Accept-Language zh-CN,zh;q0.8
空行--------------------------------- 第一部分请求行用来说明请求类型,要访问的资源以及所使用的HTTP版本. GET说明请求类型为GET,[/562f25980001b1b106000338.jpg]为要访问的资源该行的最后一部分说明使用的是HTTP1.1版本。第二部分请求头部紧接着请求行即第一行之后的部分用来说明服务器要使用的附加信息 从第二行起为请求头部HOST将指出请求的目的地.User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送等等第三部分空行请求头部后面的空行是必须的 即使第四部分的请求数据为空也必须有空行。第四部分请求数据也叫主体可以添加任意的其他数据。 这个例子的请求数据为空。 POST请求例子使用Charles抓取的request POST / HTTP1.1
Hostwww.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive nameProfessional%20AjaxpublisherWiley 第一部分请求行第一行明了是post请求以及http1.1版本。第二部分请求头部第二行至第六行。第三部分空行第七行的空行。第四部分请求数据第八行。 HTTP之请求消息response HTTP响应也由四个部分组成分别是状态行、消息报头、空行和响应正文。 例子 HTTP/1.1 200 OK
Date: Fri, 22 May 2009 06:07:21 GMT
Content-Type: text/html;
charsetUTF-8 html head/head body !--body goes here-- /body /html 第一部分状态行由HTTP协议版本号 状态码 状态消息 三部分组成。 第一行为状态行HTTP/1.1表明HTTP版本为1.1版本状态码为200状态消息为ok第二部分消息报头用来说明客户端要使用的一些附加信息 第二行和第三行为消息报头 Date:生成响应的日期和时间Content-Type:指定了MIME类型的HTML(text/html),编码类型是UTF-8第三部分空行消息报头后面的空行是必须的第四部分响应正文服务器返回给客户端的文本信息。 空行后面的html部分为响应正文。 Date: Fri, 22 May 2009 06:07:21 GMT Content-Type: text/html; charsetUTF-8 HTTP之状态码 状态代码有三位数字组成第一个数字定义了响应的类别共分五种类别:1xx指示信息--表示请求已接收继续处理2xx成功--表示请求已被成功接收、理解、接受3xx重定向--要完成请求必须进行更进一步的操作4xx客户端错误--请求有语法错误或请求无法实现5xx服务器端错误--服务器未能实现合法的请求 常见状态码 200 OK 客户端请求成功。301 Moved Permanently 请求永久重定向。302 Moved Temporarily 请求临时重定向。304 Not Modified 文件未修改可以直接使用缓存的文件。400 Bad Request 由于客户端请求有语法错误不能被服务器所理解。401 Unauthorized 请求未经授权无法访问。403 Forbidden 服务器收到请求但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因。404 Not Found 请求的资源不存在比如输入了错误的URL。500 Internal Server Error 服务器发生不可预期的错误导致无法完成客户端的请求。503 Service Unavailable 服务器当前不能够处理客户端的请求在一段时间之后服务器可能会恢复正常。会话追踪 会话客户端向服务器端发起请求到服务端响应客户端请求的全过程。会话跟踪会话追踪指的是服务器对用户响应的监视。会话跟踪常用方法 URL 重写URL 重写技术就是在 URL 结尾添加一个附加数据以标识该会话把会话 ID 通过 URL 的信息传递过去以便在服务器进行识别不同的用户。隐藏表单域将会话ID添加到HTML表单元素中提交到服务器此表单元素并不在客户端显示。CookieCookie 是 Web 服务器发送给客户端的一小段信息客户端请求时可以读取该信息发送给服务器端进而进行用户的识别对于客户端的每次请求服务器都会将 Cookie 发送到客户端客户端保存下来以便下次使用。Session在服务器端会创建一个 session 对象产生一个 sessionID 来标识这个 session 对象然后将这个 sessionID 放入到 Cookie 中发送到客户端下一次访问时sessionID 会发送到服务器在服务器端进行识别不同的用户。持久连接 我们知道 HTTP 协议采用“请求-应答”模式当使用普通模式即非 Keep-Alive 模式时每个请求/应答客户和服务器都要新建一个连接完成之后立即断开连接HTTP协议为无连接的协议当使用 Keep-Alive 模式又称持久连接、连接重用时Keep-Alive 功能使客户端到服务器端的连接持续有效当出现对服务器的后继请求时Keep-Alive 功能避免了建立或者重新建立连接。 在 HTTP 1.0 版本中并没有官方的标准来规定 Keep-Alive 如何工作因此实际上它是被附加到 HTTP 1.0协议上如果客户端浏览器支持 Keep-Alive 那么就在HTTP请求头中添加一个字段 Connection: Keep-Alive当服务器收到附带有 Connection: Keep-Alive 的请求时它也会在响应头中添加一个同样的字段来使用 Keep-Alive 。这样一来客户端和服务器之间的HTTP连接就会被保持不会断开超过 Keep-Alive 规定的时间意外断电等情况除外当客户端发送另外一个请求时就使用这条已经建立的连接。 在 HTTP 1.1 版本中默认情况下所有连接都被保持如果加入 Connection: close 才关闭。目前大部分浏览器都使用 HTTP 1.1 协议也就是说默认都会发起 Keep-Alive 的连接请求了所以是否能完成一个完整的 Keep-Alive 连接就看服务器设置情况。 由于 HTTP 1.0 没有官方的 Keep-Alive 规范并且也已经基本被淘汰。 HTTP Keep-Alive 简单说就是保持当前的TCP连接避免了重新建立连接。HTTP 是一个无状态无连接的协议那么这是不是与 Keep-Alive 冲突 Keep-Alive 与无连接的特性冲突而对于无状态的特性两者并无矛盾HTTP 无状态无连接是在 1.0 版本中就规定的而 Keep-Alive 则是在 1.1 版本中才被添加入规范。无连接的意思是限制每个连接只有一个请求的意思在服务器处理完客户的请求并收到客户的反应即断开。通过这种方式可以节省传输时间。Keep-Alive 确实破坏了这一特性而无状态协议则意味着每个请求都是独立的互不干扰的互相没有记忆的。所以才需要有会话跟踪这种机制来识别用户。缓存机制 HTTP 条件 GET 是 HTTP 协议为了减少不必要的带宽浪费提出的一种方案 HTTP 条件 GET 使用时机客户端之前已经访问过某网站并打算再次访问该站点。HTTP 条件 GET 使用的方法客户端向服务器发送一个包询问是否在上一次访问网站的时间后是否更改了页面如果服务器没有更新显然不需要把整个网页传给客户端客户端只要使用本地缓存即可如果服务器对照客户端给出的时间已经更新了客户端请求的网页则发送这个更新了的网页给用户。下面是一个具体的发送接受报文示例 第一次请求时服务器端返回请求数据之后的请求服务器根据请求中的 If-Modified-Since 字段判断响应文件没有更新如果没有更新服务器返回一个 304 Not Modified响应告诉浏览器请求的资源在浏览器上没有更新可以使用已缓存的上次获取的文件。 如果服务器端资源已经更新的话就返回正常的响应。 Https 转载于:https://www.cnblogs.com/GaryZz/p/11130192.html