http请求

网络协议

こ雲淡風輕ζ 提交于 2020-03-09 11:01:08
网络协议介绍 OSI(Open System Interconnect)七层模型:通信的特点是对等通信 从上往下分别为 应用层:为应用程序提供服务,此层应有的网络协议有HTTPS,HTTP,FTP等协议 实际公司A的老板就是我们所述的用户,而他要发送的商业报价单,就是应用层提供的一种网络服务,当然,老板也可以选择其他服务,比如说,发一份商业合同,发一份询价单,等等。 表示层:数据格式化,数据加密;表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别 由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。 会话层:建立,管理,维护会话,会话层就是负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。 会话层的同事拿到表示层的同事转换后资料,(会话层的同事类似公司的外联部),会话层的同事那里可能会掌握本公司与其他好多公司的联系方式,这里公司就是实际传递过程中的实体。他们要管理本公司与外界好多公司的联系会话。当接收到表示层的数据后,会话层将会建立并记录本次会话,他首先要找到公司B的地址信息

http缓存提高性能

冷暖自知 提交于 2020-03-09 06:23:28
秋招也算是正式结束了,现在整理一下笔记,当作巩固一下知识,也希望这个对大家有帮助 http 缓存 和 cdn 缓存可以说是面试必问的问题,竟然是必问的问题,那就总结全面一点~ http缓存机制 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),其实广泛使用的 CDN 也是一种服务端缓存,目的都是让用户的请求走”捷径“,并且都是缓存图片、文件等静态资源。 浏览器缓存控制机制有两种:HTML Meta标签 vs. HTTP头信息 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。 expires和cache control 都是 指明资源的缓存有效期,如果有效,就(200 from cache) expires : http1.0 ,服务器响应消息头字段,在响应http请求时告诉 浏览器在过期时间前可以直接从浏览器缓存存取数据(200 from cache)

http缓存提高性能

我只是一个虾纸丫 提交于 2020-03-09 06:21:27
http缓存机制 缓存分为服务端侧(server side,比如 Nginx、Apache)和客户端侧(client side,比如 web browser)。 服务端缓存又分为 代理服务器缓存 和 反向代理服务器缓存(也叫网关缓存,比如 Nginx反向代理、Squid等),其实广泛使用的 CDN 也是一种服务端缓存,目的都是让用户的请求走”捷径“,并且都是缓存图片、文件等静态资源。 浏览器缓存控制机制有两种:HTML Meta标签 vs. HTTP头信息 <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 上述代码的作用是告诉浏览器当前页面不被缓存,每次访问都需要去服务器拉取。使用上很简单,但只有部分浏览器可以支持,而且所有缓存代理服务器都不支持,因为代理不解析HTML内容本身。 expires和cache control 都是 指明资源的缓存有效期,如果有效,就(200 from cache) expires : http1.0,服务器响应消息头字段,在响应http请求时告诉 浏览器在过期时间前可以直接从浏览器缓存存取数据(200 from cache) ,而无需再次请求,现在默认浏览器都是默认使用http 1.1,所以它的作用基本忽略。 缺点:返回的到期时间是服务器端的时间,如果客户端和服务器的时间相差很大,误差就很大。所以,在http

HTTP请求Response Headers

社会主义新天地 提交于 2020-03-09 06:12:02
HTTP响应的headers头解析 Allow 服务器支持哪些请求方式(如GET、POST等)。 Content-Encoding 文档编码(Encode)方法。只有在解码之后才可以得到Content-Type头指定的内容类型。利用gzip压缩文档能够显著地减少HTML文档的下载时间。Java的GZIPOutputStream可以很方便地进行gzip压缩,但只有Unix上的Netspace和windows的IE4、IE5才支持它。因此,Servlet应该通过查看Accept-Encoding头(即request.getHeader('Accept-Encoding'))检查浏览器是否支持gzip,为支持gzip的浏览器返回经gzip压缩的HTML页面,为其他浏览器返回普通的页面 Content-Length 表示后面的文档属于什么MIME类型。Servlet默认为text/plain,但通常需要显式地指定为text/html。由于经常要设置Content-Type,因此HttpServletResponse提供了一个专用的方法setContentType。 Date 当前的GMT时间。你可以用setDateHeader来设置这个头以避免转换时间格式的麻烦 Expires 应该在什么时候认为文档已经过期,从而不再缓存它 Last-Modified 文档的最后改动时间。可以用Last

REST服务和HTTP Headers

前提是你 提交于 2020-03-09 06:11:21
REST服务 REST service是一种架构模式,RESTFul架构应该遵循统一接口原则,统一接口包含了一组受限的预定义的操作,不论什么样的资源,都是通过使用相同的接口进行资源的访问。接口应该使用标准的HTTP方法,如GET,POST,PUT,DELETE,并遵循这些方法的语义。 REST实例【1】 假设用户正在访问一个电商网站www.egoods.com。用户登陆该网站进行购物时,首先需要在该网站上选择其所需要寻找物品的分类,进而列出属于该分类的各个物品。看似简单的流程其实浏览器向服务器发送了多次请求:1,页面加载时将得到所有商品分类,服务器将这些分类显示在浏览器上。2,用户选择一个分类,浏览器请求该分类的详细信息,服务器将该分类的所有商品显示在浏览器上。3,用户选择商品,浏览器请求该产品的信息,服务器将该产品显示在浏览器上。 1,向www.egoods.com/api/categories发送GET请求 GET /api/categories Host: www.egoods.com Authorization: Basic xxxxxxxxxxxxxxxxx Accept: application/json 从服务器端返回的JSON HTTP/1.1 200 OK Content-Type: application/json Content-Length: xxx [ {

HTTP解析

…衆ロ難τιáo~ 提交于 2020-03-09 06:10:03
前言 B/S网络架构的核心是HTTP,掌握HTTP对一个从事互联网工作的程序员来说非常重要。要理解HTTP,最重要的是要熟悉HTTP的HTTP Header,HTTP Header控制着互联网上成千上万用户的数据传输。最关键的是,它控制着用户浏览器的渲染行为和服务器的执行逻辑。例如,当服务器没有用户请求的数据的时候就会返回一个404状态码,告诉浏览器没有要请求的数据,通常浏览器就会展示一个非常不愿意看到的该页面不存在的错误信息。OK,接下来开始对于HTTP的学习。 HTTP是什么 HTTP,英文全称为HyperText Transfer Protocol,即超文本传输协议,是互联网上应用最为广泛的一种网络协议。HTTP是一种属于 应用层 的面向对象的协议,一次HTTP操作称为一个实物,其简单工作过程如图: 其工作过程可以分为四步: 1、首先客户端与服务器需要建立连接,只需要单击某个超级链接,HTTP的工作开始 2、建立连接后,客户端发送一个请求给服务器(默认请求服务器的80端口),请求方式的格式为:统一资源标识符(URL)+协议版本号+MIME信息包括请求修饰符、客户端信息和可能的内容 3、服务器接收到请求后,给予响应的相应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后面是MIME信息包括服务器信息、实体信息和可能的内容 4

Servlet(三)----Servlet体系与HTTP

我怕爱的太早我们不能终老 提交于 2020-03-08 22:22:45
## Servlet的体系结构    Servlet --- 接口     |     |   GenericServlet --- 抽象类     |     |   HttpServlet -- 抽象类   GenericServlet:将Servlet接口中其他的方法做了默认空实现,只将service()方法作为抽象     * 将来定义Servlet类时,可以继承GenericServlet,实现Service()方法即可。   HttpServlet:对HTTP协议的一种封装,简化操作     1、定义类继承HttpServlet     2、复写doGet/doPost方法 ## Servlet相关配置   1、urlpartten:Servlet的访问路径      * 一个Servlet可以定义多个访问路径: @WebServlet({"/d1","/d2"})     * 路径定义规则:       1、/xxx       2、/xxx/xxx:多层路径,目录结构       3、*.do package com.ftj.servlet.demo02; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet

HTTP所有概念

老子叫甜甜 提交于 2020-03-08 22:08:00
HTTP所有概念 上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种, 通用标头 、 实体标头 、 请求标头 、 响应标头 ,现在我们来对这几种标头进行介绍 通用标头 HTTP 通用标头之所以这样命名,是因为与其他三个类别不同,它们不是限定于特定种类的消息或者消息组件(请求,响应或消息实体)的。HTTP 通用标头主要用于传达有关消息本身的信息,而不是它所携带的内容。它们提供一般信息并控制如何处理和处理消息。 尽管通用标头不会限定于是请求还是响应报文,但是某些通用标头大部分或全部用于一种特定类型的请求中。也就是说,如果某个通用标头出现在请求报文中,那么大部分通用标头都会显示在该请求报文中。响应报文也是一样的。 先列出来一个清单,讲明我们都需要介绍哪些通用标头 Cache-Control Connection Date Pragma Trailer Transfer-Encoding Upgrade Via Warning Cache-Control 缓存(Cache) 是计算机领域里的一个重要概念

HTTP协议随笔

百般思念 提交于 2020-03-08 22:06:08
1.简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写。 2.特点 简单快速 灵活 HTTP 0.9和1.0使用非持续连接 HTTP 1.1使用持续连接 无状态 支持B/S (浏览器/服务器 ) 及C/S模式(客户机/服务器) 3.工作原 1、客户端连接到Web服务器 一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接 2、发送HTTP请求 通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。 3、服务器接受请求并返回HTTP响应 Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。 4、释放连接 TCP连接 若connection 模式为close,则服务器主动关闭 TCP连接 ,客户端被动关闭连接,释放 TCP连接 ;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求; 5、客户端浏览器解析HTML内容 客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML

HTTP协议详解

点点圈 提交于 2020-03-08 20:21:31
HTTP报文结构 HTTP请求报文 HTTP响应报文 报文概要结构 请求方法 HTTP/1.1协议常见请求方法有以下六种: 方法 解释 OPTIONS 询问服务器针对特定资源所支持的HTTP请求方法,也可以利用向服务器发送'*'的请求来测试服务器的功能性 HEAD 向服务器索要响应头部。 GET 向服务器的URI所标识的资源发出请求。请求参数放在URL中。 POST 向服务器的URI所标识的资源提交数据。数据被包含在请求体中。 PUT 向URI所标识的资源位置上传其最新内容。 PATCH 请求将局部修改应用于URI所标识的资源。 DELETE 请求服务器删除URI所标识的资源。 状态码 报文字段 请求头字段 Range:(unit=first byte pos)-[last byte pos] 响应头字段 Content-Length: entity legth Content-Range: bytes (unit first byte pos) - [last byte pos]/[entity legth] 来源: CSDN 作者: watesoyan 链接: https://blog.csdn.net/weixin_39995275/article/details/104736970