http协议

WebSocket的介绍

妖精的绣舞 提交于 2020-02-28 02:04:34
WebSocket websocket的背景 现在,很多网站为了实现推送技术,所用的技术都是 Ajax 轮询或者long poll 。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。 websocket的特点 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。 在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。 Ajax轮询 ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 场景再现: 客户端:啦啦啦,有没有新信息(Request) 服务端:没有(Response) 客户端:啦啦啦,有没有新消息(Request) 服务端:好啦好啦,有啦给你。(Response) 客户端:啦啦啦,有没有新消息

Django _web框架本质

杀马特。学长 韩版系。学妹 提交于 2020-02-28 00:34:30
Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 这样我们就可以自己实现Web框架了。 socket服务端 import socket sk = socket.socket() sk.bind(( "127.0.0.1", 80)) 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

HTTP协议中的Content-type

梦想的初衷 提交于 2020-02-27 16:17:48
本文简单列举下HTTP协议中的Content-type,用以判断传输过程中的文件类型。 Content-type是HTTP协议中一个头域字段,其表示的含义是传输数据的文件类型,例如文本,图片,视频等格式。对于文本格式,到底是采用GBK编码的文本还是UTF-8编码的文本,都会通过该字段加以说明。用来指导应用层解析器,比如浏览器对于内容的解析显示 外汇赠金活动 。Content-Type: text/html; charset=utf-8是大家最常见的HTTP的一个头域形式,表示的是UTF8编码的HTML格式文件。 如下是一个实际传输的HTTP报文头: GET /c_zoom,h_213/c_cut,x_21,y_13,w_937,h_625/os/news/607c944a4097c3b8d1bc806f2a8777ed.jpg HTTP/1.1 Host: 29e5534ea20a8.cdn.sohucs.com Connection: keep-alive User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.119 Safari/537.36 Accept: image/webp,image/apng,image/*,*/*

从Socket编程到Http协议,了解Tomcat底层,实现自己的HTTP服务器。

吃可爱长大的小学妹 提交于 2020-02-27 14:28:24
上节我们知道Tomcat里面的server里的service里的connector的endpoint部分作用在传输层,processor部分作用在应用层。 Web服务器 本文将介绍 Java Web 服务器是如何运行的, Web 服务器也称为超文本传输协议( HyperText Transfer Protocol, HTTP)服务器, 因为它使用 Http 协议与其客户端(通常是 Web 浏览器)进行通信, 基于 Java 的 Web 服务器会使用两个重要的类: java.net.Socket 类和 java.net.ServerSocket 类, 并通过发送 Http 消息进行通信. 我们先花一些篇幅介绍 Http 协议(如果同学们熟悉HTTP协议可直接跳过)和这两个类, 然后写一个简单的 Web 服务器。 Http协议 Http : Http 允许 Web 服务器和浏览器通过因特网发送并接受数据, 是一种基于”请求-响应”的协议, 客户端请求一个文件, 服务器端对该请求进行响应.。Http 使用可靠的 tcp 连接, 服务端默认端口为80, http协议的第一个版本是 http/0.9, 后来被 http/1.0取代, 随后 http/1.0又被http/1.1取代, http/1.1 定义域 RFC2616中。 在 Http 中, 总是由客户端通过建立连接并发送 http

Http协议[Get和Post]详解

天大地大妈咪最大 提交于 2020-02-27 08:44:07
(2012-11-27 11:23:26) 标签: android http get post mars 分类: Android系列 访问 url ,需要连接网络。所以,首先应该添加 Manifest 权限: < uses-permission android:name = "android.permission.INTERNET" /> 1.Get 请求(核心代码) private String baseUrl = "http://192.168.1.100:8080/serverside/name" ; private String name , age ; //代表用户输入的请求内容 private HttpResponse httpResponse ; private HttpEntity httpEntity ; private InputStream inputStream ; public void onClick(View v){ //此处的name+age,作为数据发送 String url= baseUrl + "?" + "name=" + name + "&" + "age=" + age ; //生成一个请求对象 HttpGet httpGet= new HttpGet(url); //生成一个 http 客户端对象 HttpClient

面试题——HTTP/HTTPS(待续)

我怕爱的太早我们不能终老 提交于 2020-02-27 08:42:11
说一下http协议(详细) 1.http协议的主要特点 简单快速 每个资源(比如图片、页面)都通过 url 来定位。这都是固定的,在http协议中,处理起来也比较简单,想访问什么资源,直接输入url即可。 灵活 http协议的头部有一个数据类型,通过http协议,就可以完成不同数据类型的传输。 无连接 连接一次,就会断开,不会继续保持连接。 无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。 无状态 客户端和服务器端是两种身份。第一次请求结束后,就断开了,第二次请求时,服务器端并没有记住之前的状态,也就是说,服务器端无法区分客户端是否为同一个人、同一个身份。 有的时候,我们访问网站时,网站能记住我们的账号,这个是通过其他的手段(比如 session)做到的,并不是http协议能做到的。 2.HTTP报文的组成部分 http报文包括: 请求报文 和 响应报文 。 https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=1384047457,2091490325&fm=173&app=25&f=JPEG?w=639&h=377&s=C900E413199EC4C858F581DA0000C0B2 请求报文包括:请求行(请求方法、请求url、http协议及版本)、请求头头、空行、请求体 请求行

http协议的状态码中,400,401,403,404,500,502,503等常见网页错误代码

邮差的信 提交于 2020-02-27 08:09:04
http 协议的状态码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码。 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx(成功) 表示成功处理了请求的状态码。 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。如果是对您的 robots.txt 文件显示此状态码,则表示 Googlebot 已成功检索到该文件。 201(已创建) 请求成功并且服务器创建了新的资源。 202(已接受) 服务器已接受请求,但尚未处理。 203(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。 204(无内容) 服务器成功处理了请求,但没有返回任何内容。 205(重置内容) 服务器成功处理了请求,但没有返回任何内容。与 204 响应不同,此响应要求请求者重置文档视图(例如,清除表单内容以输入新内容)。 206(部分内容) 服务器成功处理了部分 GET 请求。 3xx(重定向) 要完成请求,需要进一步操作。通常,这些状态码用来重定向。Google 建议您在每次请求中使用重定向不要超过 5 次。您可以使用网站管理员工具查看一下 Googlebot 在抓取重定向网页时是否遇到问题

http协议与https协议

北城余情 提交于 2020-02-26 15:16:00
1.概念:   超文本传输协议。因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。 2.常用请求头信息   - User-Agent:请求载体的身份标识   - Connection:请求完毕后是断开连接还是保持连接//close|keepalive   - Accept:text/html,image/*(告诉服务器,浏览器可以接受文本,网页图片)  - Accept-Charaset:ISO-8859-1 [接受字符编码:iso-8859-1]  - Accept-Encoding:gzip,compress[可以接受 gzip,compress压缩后数据]  - Accept-Language:zh-cn[浏览器支持的语言]  - Host:localhost:8080[浏览器要找的主机]  - Referer:http://localhost:8080/test/abc.html[告诉服务器我来自哪里,常用于防止下载,盗链] 3.常用响应头   - Content-Type: 服务器响应回客户端的数据类型   - Allow:服务器允许的请求方式   - Content-Length:返回内容的长度 4.https协议   - 安全的http协议(数据加密) 5.加密方式   - 对称秘钥加密 /* 客户端向服务器发送一条信息

HTTP协议

China☆狼群 提交于 2020-02-26 09:39:51
HTTP协议 一、定义 HTTP协议(超文本传输协议):一种无状态的、应用层的、以请求/应答方式运行的协议,它使用可扩展语义和自然描述消息格式, 与基于网络的超文本信息系统灵活的互动。 二、HTTP消息的格式 (一)、语义话的表达格式 请求格式: 请求方法:GET/POST/PATCH/PUT/DELETE 版本号 path路径 以上三个组成请求行(request-line) HOST:域名 响应格式: 响应行(response-line) HTTP请求 状态码 响应体 request-line和response-line共同组成start-line (二)、基于ABNF的严谨格式 ABNF:扩充巴科斯-瑙尔范式 操作符号: 空白字符:用来分割定义中的各个元素。例如:method SP request-target SP HTTP-version CRLF 选择'/':表示多个规则都是可以选择的规则。例如:start-line = request-line/response-line,start-line可以是两者中的任意一个。 值范围:%##-## 。例如:如果希望取值在0-7之间,可以有两种表达方式: 方式一:OCTAL = '0' / '1' / '2' / '3' / '4' / '5' / '6' / '7' ,通过或的关系来取值。 方式二:OCTAL = %x30-37

20200218--HTTP协议

坚强是说给别人听的谎言 提交于 2020-02-25 23:59:25
一、HTTP 概念 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法 HTTP 协议和TCP/IP协议族的其他众多协议相同,用户客户端和服务器之间的通信 二、HTTP发展史 1989http诞生: 最初设想:借助多文档之间相互关联形成的超文本(HypeText),连接可相互参阅WWW(万维网) 1990年http/0.9版本 HTTP 0.9版本问世 1996 http/1.0版本 1996年5月,HTTP正式作为标准被公布 1997 http/1.1版本 1997年1月公布http1.1版本,也是目前最主流的http协议版本 三、HTTP 的通信过程 (1)先建立TCP连接,三次握手过程,HTTP协议是承载在TCP上的应用层协议 (2) 浏览器封装请求消息,将封装后的HTTP请求通过网络寻址发送到具体的服务器上 (3)服务器收到请求后解封装,协议HTTP协议头中信息,根据请求方法中的资源路径找到对应的请求资源,然后将封装响应报文发送给客户端 (4)HTTP 1.0是短连接,HTTP1.1开始支持长连接 (5)请求头Connection字段:表示是否需要持久连接,(HTTP1.1默认进行持久连接)。如