http协议

HTTP协议小记

冷暖自知 提交于 2019-12-26 19:03:13
应用层上的协议非常重要的一个协议是HTTP协议。 这个协议包括了请求和回复两种报文类型。 请求和回复报文的内容形式是 1)起始行 2)首行 3)消息体 请求报文的内容格式是 <version><request-url><method> <headers> <entity-body> 回复报文的内容格式是 <version><status><reason-pharse> <headers> <entity-body> 报文中标签代表的含义是 method:指请求方法,主要的方法为GET和POST。 request-url:指请求路径/地址 version:指协议版本,现在通常是http/1.1   status:指响应状态码,主要的响应状态例如200,404。 reason-pharse:原因短语,200 Ok、404 No Found 这种后面描述的就是原因短语,不必太过关注。 method 请求方法使用频繁的是Get和POST。面试的时候通常被问到这两个方法有什么区别。这里我们来谈一谈。 GET和POST在传输形式上有一些差异。GET请求时,会在request-url地址后拼接参数,格式是url?parm1=ss&parm2=dd。 所以,这样的形式会在地址栏中暴露参数。由于url地址采用ASCII编码,如果参数中有Unicode编码的字符,例如汉字,需要转码后传输。

HTTP协议

对着背影说爱祢 提交于 2019-12-26 12:08:16
一、HTTP协议简介   超文本传输协议(HyperText Transfer Protocol 简称HTTP)是万维网应用层的网络传输协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP是一个 客户端和 服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。客户端通过工具发起一个到服务器上指定端口的HTTP请求,应答的服务器上存储着资源。 二、HTTP工作原理  一次HTTP操作称为一个事务,其工作过程可分为四步:建立连接、发送请求信息、发送响应信息、断开连接。 1.建立连接   首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。 2.发送请求   建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议 版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。 3.发送响应   服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。 4.断开连接   客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客 户机与服务器断开连接。 三、特点 HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输

Java获取http和https协议返回的json数据

不想你离开。 提交于 2019-12-26 07:46:09
现在很多公司都是将数据返回一个json,而且很多第三方接口都是返回json数据,而且还需要使用到http协议,http协议是属于为加密的协议,而https协议需要SSL证书,https是将用户返回的信息加密处理,然而我们要获取这些数据,就需要引入SSL证书。现在我提供两个方法,帮助各位如何获取http和https返回的数据。 获取http协议的数据的方法,如下: public static JSONObject httpRequest(String requestUrl, String requestMethod) { JSONObject jsonObject = null; StringBuffer buffer = new StringBuffer(); try { URL url = new URL(requestUrl); // http协议传输 HttpURLConnection httpUrlConn = (HttpURLConnection) url.openConnection(); httpUrlConn.setDoOutput(true); httpUrlConn.setDoInput(true); httpUrlConn.setUseCaches(false); // 设置请求方式(GET/POST) httpUrlConn.setRequestMethod

1. B/S网络概述

旧时模样 提交于 2019-12-26 01:05:10
B/S网络架构 随着Web2.0时代的到来,互联网的网络架构已经从传统的C/S架构转变到更加方便快捷的B/S架构。这样的转化简化了人们上网的方式,也加速了互联网行业的发展。 B/S架构的好处: 1.客户端使用统一的浏览器(Browser)。因为浏览器是统一的,所以用户的使用难度大大的降低了,而且对于开发者来说也可以降低学习成本。 2.服务端(Server)基于统一的HTTP协议。HTTP是一种无状态的连接,请求完成后断开。全世界的互联网服务都基于统一打招呼的方式,这种方式更加便捷,效率更高。 当用户输入www.taobao.com的时候这个URL的时候,将会发生很多的操作。首先它会请求DNS把这个域名解析成对应的IP地址,然后根据z合格IP地址在互联网上找到对应的服务器,向这个服务器发一个get请求,由这个服务器决定返回默认的数据资源给访问的用户。服务器也可以是有很多台,到底指定哪台服务器来处理请求,这需要一个负载均衡设备来平均分配所有用户的请求;还有请求的数据是存储在分布式缓存里还是一个静态文件中,或是在数据库里;当数据返回浏览器时,浏览器解析数据发现还有一些静态资源文件(如css、js或者图片)时又会发起另外的HTTP请求,而这些请求很可能会在CDN上,那么CDN服务器又会处理这个用户的请求,用户发起一个请求大概有这么多的过程,如果有哪个节点出现了问题

十分钟搞懂HTTP和HTTPS协议

爷,独闯天下 提交于 2019-12-25 20:39:44
什么是协议? 网络协议是计算机之间为了实现网络通信而达成的一种“约定”或者”规则“,有了这种”约定“,不同厂商的生产设备,以及不同操作系统组成的计算机之间,就可以实现通信。 HTTP协议是什么? HTTP协议是超文本传输协议的缩写,英文是Hyper Text Transfer Protocol。它是从WEB服务器传输超文本标记语言(HTML)到本地浏览器的传送协议。 设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。 HTPP有多个版本,目前广泛使用的是HTTP/1.1版本。 HTTP原理 HTTP是一个基于TCP/IP通信协议来传递数据的协议,传输的数据类型为HTML 文件,、图片文件, 查询结果等。 HTTP协议一般用于B/S架构()。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。 我们以访问百度为例: 访问百度流程 HTTP特点 1. http协议支持客户端/服务端模式,也是一种请求/响应模式的协议。 2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。 3. 灵活:HTTP允许传输任意类型的数据对象。传输的类型由Content-Type加以标记。 4. 无连接:限制每次连接只处理一个请求。服务器处理完请求,并收到客户的应答后,即断开连接

Http 协议

懵懂的女人 提交于 2019-12-25 18:47:16
贴一个Http协议 以下是详细说明 重点关键字:协议方法,状态码,长连接,无状态协议,持久连接,不加密,不验证身份,可能被篡改 HTTP概念 HTTP 协议(超文本 传输协议 HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。 注意 :客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器。这取决与请求的发起端。HTTP协议属于应用层,建立在传输层协议TCP之上。客户端通过与服务器建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现。 因为http不加密,不验证身份,可能被篡改,就有了https HTTP + 加密 + 认证 + 完整性保护 = HTTPS(HTTP Secure ) HTTPS 采用共享密钥加密(对称)和公开密钥加密(非对称)两者并用的混合加密机制。 缺点: 加密解密过程复杂,导致访问速度慢 加密需要认向证机构付费 整个页面的请求都要使用HTTPS 握手机制 General Request URL: http://xx.com/?currentPage=1&pageSize=10 Request Method: GET Status Code: 200 Remote Address: xx.com

Http协议和Tomcat服务器

非 Y 不嫁゛ 提交于 2019-12-25 11:32:06
两种架构介绍C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国Borland公司最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。c/s 客户端和服务器 b/s 浏览器和服务器两种架构的比较   bs 优势 更新比较方便      劣势 服务器压力偏大 交互性要差一些 cs 优势 服务器压力偏小,交互性要好一些      劣势 更新不方便 web 网页网站的意思,学习javaWeb 就是用java写web web包含2类资源的 静态资源(不变的资源)       html js css 图片 视频   动态 资源     数据实时变化的资源     在java 可以通过jsp serveet去开发动态网页 常见的动态网页开发技术     php 用于中小型网站,开发速度比较快的     .net c#     java 用于大型网站 开发速度没有那么快     ruby 当我们在浏览器的的地址输入来输入一串网址时 都做了些什么事情 如:http://localhost:8080/ 1 浏览器 先将域名转化成ip地址 (这个过程分两步完成 首先 会在计算机本地的hosts文件中找域名对应 的ip 如果在本地未找到对应的域名 那就到dns 服务器中去找 将对应的域名转化成ip地址) 2 获得ip地址后

HTTP协议学习与复习

僤鯓⒐⒋嵵緔 提交于 2019-12-25 04:49:05
答案来源于《HTTP权威指南》,没有解释的名词,说明还没学习到,先放着,看完图解HTTP网络这一块就结束吧 为什么用TCP作为HTTP传输层协议? 保证无差错的数据传输(检验和、ACK确认、重传) 可以保证数据有序到达(包序号、重传) 未分段的数据流,任意时刻可以发送任意尺寸的数据(不懂) HTTP1.0/1.1/2.0的区别? 1.0->1.1 长连接,Header->Keep-Alive 并且得益于长连接,请求可以管道化(把包含多个请求的页面数据,依次返回,将请求队列化为响应队列),事实上还是用发送多个TCP请求来解决 缓存处理,Header->Cache-Control 详解:https://www.cnblogs.com/chenqf/p/6386163.html 断点续传,Header->Range,指定偏移量 Header->host,多个域名可以属于同一个服务器 1.1->2.0 新特性 二进制分帧 多路复用 头部压缩 服务器推送 TCP三次握手与四次挥手过程,要能默写 HTTP请求TCP连接断开由什么决定,哪一方决定? HTTP1.0 响应报文含有content-length,客户端能够主动断开,否则服务器发送完毕后主动断开 HTTP1.1/2.0 响应报文含有content-length,客户端主动断开 响应报文含有Transfer-encoding

计算机网络(18): 应用层——HTTP协议

送分小仙女□ 提交于 2019-12-25 04:27:29
文章目录 1 HTTP协议 2 HTTP的工作结构 (1) Web缓存 (2) Web代理 (3) CDN (4) 爬虫 3 HTTPS协议 (1) 加密模型 (2) 数字证书 (3) SSL (4) HTTPS协议的过程 注:转载请标明原文出处链接: https://xiongyiming.blog.csdn.net/article/details/103689873 1 HTTP协议 超文本传输协议 (HyperText Transfer Protocol, HTTP)是可靠的数据传输协议。 超文本 :带有超链接的 来源: CSDN 作者: TechXYM 链接: https://blog.csdn.net/zaishuiyifangxym/article/details/103689873

自定义Web框架

喜欢而已 提交于 2019-12-24 20:57:56
Web框架本质 我们可以这样理解:所有的web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。这样我们就可以自己实现web框架了。 半成品自定义web框架 import socket sk = socket.socket() sk.bind('127.0.0.1',8080) sk.listen() while True: conn,addr = sk.accept() data = conn.recv(8096) conn.send(b"oK") conn.close() 可以说Web服务本质上都是在这十几行代码基础上扩展出来。这段代码就是他们的祖宗。 用户的浏览器一输入网址,都会遵循统一的规则发送给服务端数据。所以,这个规则就是HTTP协议,以后浏览器发送请求信息也好,服务器回复响应信息也罢,都要按照这个规则来。 HTTP协议主要规定了客户端和服务器之间的通信格式,那HTTP协议是怎样规定消息格式呢? 让我们首先打印下我们在服务端接收到的消息是什么。 import socket sk = socket.socket() sk.bind(("127.0.0.1",8080)) sk.listen() while True: conn,addr = sk.accept() data = conn.recv(1024) print(data)