HTTP 相关知识

一、HTTP请求方式

HTTP超文本传输协议:是短连接,是客户端主动发送请求,服务器作出响应,响应之后服务器断开。HTTP属于应用层面向对象协议,HTTP有两类报文:请求报文和相应报文。
请求报文包含:请求行、请求头、空行、请求数据四部分组成。
响应报文包含:状态行、消息报文、响应正文三部分组成。
通常,HTTP请求方式有三种,分别是:POST、GET、HEAD。其中POST和GET用于数据发送。
1、POST:它将发送的数据单独放在一个流中进行发送,而不是附加到URL地址后面,这样做的好处是这些数据不会出现在URL地址中。
2、GET:它将发送的数据直接添加到URL后面,用&链接,这样的好处是不用另外的数据流来发送这些数据,但是缺点是将用户信息暴露出来了,不安全。
3、HEAD:它是请求资源的元数据方法。

二、HTTP定义了与服务器交互的不同的方法,最基本的方法有?

1、URL全程是资源描述符,我们可以这样认为:一个URL地址,它用于一个网络上的资源,而HTTP中的GET、POST、PUT、DELETE就对应着这个资源的查、改、增、删四个操作。
2、GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

三、socket简介

1、socket是基于TCP/IP协议,它是一个可以连通网络上不同计算机程序之间的管道,把数据从管道A端放进去,则会从管道B、C......等端冒出来。管道的端口由机器的IP和程序所使用的端口号来确认。
2、socket可以支持数据的发送和接收,它会定义一种称为套接字的变量,发送数据的时候首先创建套接字,然后使用该套接字的send to等方法对准某个IP/端口,进行数据发送;接收端口也首先创建套接字,然后将该套接字绑定到一个IP/端口上,所有发向此端口的数据会被该套接字的recv等函数读出。和读出文件中的数据一样。
3、TCP/IP的socket提供三种套接字:流式套接字、数据报式套接字、原始套接字。
4、常用的第三方库:AsyncScoket。

四、APP需要加载大量的数据,给服务器发送请求,但是服务器卡住了,请问怎么解决?

1、设置请求超时。
2、给用户提示请求超时。
3、根据用户操作再次请求数据。

五、HTTP通信的发送请求、接收相应包含哪些内容?

一个请求包含请求行、请求头、请求体。

1、请求行:包含HTTP协议版本、状态码、状态英文名称HTTP/1.1 200 ok
2、请求头:对客户端的环境描述、客户端请求的主机地址等信息。
3、请求体:客户端发送给服务器的具体数据,比如文件数据。

一个响应包括:状态行、响应头、实体内容。

1、状态行:包含HTTP协议版本、状态码、状态英文名:HTTP/1.1 200 ok
2、响应头:包含对服务器的描述、对返回数据的描述。(服务器类型、返回数据类型、返回数据长度、响应时间)
3、实体内容:服务器返回给客户端的具体数据,比如文件数据。

image

六、TCP和UDP的区别

1、UDP是用户数据报协议:主要用在实时性相对较高以及对质量相对较弱的地方,但面对现在高质量的线路,不容易丢包除非是在一些拥塞的情况下,如流媒体。

2、TCP是传输控制协议:是面向连接的,可靠性高,有良好的拥塞控制机制,如http、ftp、telent等。

image

七、什么是三次握手和四次挥手

更好地回答:

1、初始状态:刚开始客户端处于close状态,服务店处于listen状态。
2、然后,第一次握手,客户端给服务端发送一个SYN报文,并指明客户端的初始化序列号ISN(c),此时客户端进入SYN_Send状态。
3、第二次握手,服务端收到客户端的SYN报文之后,会以自己的SYN报文作为应答,并且指定了自己的初始化序列号ISN(c),同时会把客户端的ISN+1作为ACK的值,表示自己收到了客户端的SYN,此时服务器处于SYN_REVD的状态。
4、第三次握手,客户端收到SYN报文之后,会发送一个ACK 报文,当然,也一样把服务器的ISN+1作为ACK的值,标识已经收到了服务端的SYN报文,此时客户端处于establised(已建立)状态。
5、服务器收到客户端的ACK报文之后,也处于establised状态。

三次握手的作用:

1、确认双方的接受能力、发送能力是否正常。
2、制定自己的初始化序列号,为后面的可靠传输做准备。
3、如果是HTTPS协议的话,三次握手过程中还会有数字证书的验证和加密密钥的生成。

初始化序列号ISN是非固定的,防止攻击者猜出来。

什么是半连接队列?

第一次握手之后,服务端处于SYN_RCVD状态,此时双方还没有完全建立连接,服务器会把此种状态下的请求连接放到一个队列里,我们把这种队列称之为半连接队列。

握手期间是否可以携带数据?

第一次第二次握手不可以携带数据,防止有人恶意攻击。
第三次握手可以携带数据。因为已经建立连接了

1、三次握手实现过程
第一次握手:建立连接时,客户端发送同步序列编号到服务器,并进入发送状态,等待服务器的确认。
第二次握手:服务器收到同步序列编号,确认并同时自己也发送一个同步序列编号+确认标志,此时服务器进入等待状态。
第三次握手:客户端收到服务器发送的包,并向服务器发送确认标志,随后连接成功。
注意:是在链接成功之后再进行数据传输。
2、四次挥手
第一次:客户端向服务器发送一个带有结束标记的报文。
第二次:服务器收到报文之后,向客户端发送一个确认序号,同时通知自己相应的程序,对方要求关闭链接。
第三次:服务器向客户端发送一个带有结束标记的报文。
第四次:客户端收到报文后,向服务器发送一个确认序号。链接关闭。

八、JSON和XML的区别?

1、可读性:基本相同,XML的可读性比较好。
2、可扩展性:都有很好的可扩展性。
3、编码难度:JSON编码比较容易。
4、解码难度:JSON解码难度基本为零,XML要考虑子节点和父节点。
5、数据体积:JSON体积较小,传输速度更快。
6、数据交互:JSON和JavaScript交互更加方便。
7、数据描述:XML对数据的描述性更好。

九、HTTP和socket的区别。

1、HTTP短连接,客户端主动发送请求,服务端才能相应,一次请求完毕后,断开链接,以节省资源。服务端不能主动给客户端相应(除非采取HTTP长连接技术)。
2、socket主要使用“套接字”链接,并没有规定连接后断开,所以客户端和服务端可以保持长连接,双方都可以主动发送数据。一般应用在股票开发、IM、游戏等即时性很强且发送数量比较大的场合。

十、HTTP和HTTPS的区别

定义:HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。
1、HTTPS是在HTTP上加入SSL层,HTTPS的安全基础是SSL。
2、HTTP是超文本传输协议,信息是明文传输,HTTPS则是SSL加密。
3、HTTP连接的端口是80,HTTPS是443。
4、HTTP连接时无状态的,HTTPS是由SSL+HTTP协议构成的可进行加密传输、身份认证的网络协议。
5、https协议需要到ca申请证书,一般免费证书很少,需要交费。

链接://www.greatytc.com/p/b0f72d6701ce

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容

  • HTTP相关知识 1.HTTP的概念 超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议。它...
    LHH大翰仔仔阅读 541评论 0 13
  • 1.OSI 七层模型指什么? 七层模型,亦称OSI(Open System Interconnection)参考模...
    LouisJ阅读 419评论 0 0
  • 导读 移动开发知识体系总章(Java基础、Android、Flutter) 什么是HTTP协议? HTTP请求所经...
    彭空空阅读 277评论 0 1
  • 前言 关于HTTP这个主题,可能大家马上就会想到HTTP协议,确实今天要讲的也就是HTTP协议,因为我们面对的接口...
    李盼_168d阅读 171评论 0 0
  • Web 页面的实现 Web 基于 HTTP 协议通信 客户端(Client)的 Web 浏览器从 Web 服务器端...
    毛圈阅读 1,079评论 0 2