美文网首页
iOS HTTP总结

iOS HTTP总结

作者: woniu | 来源:发表于2018-05-22 15:07 被阅读69次

    一、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、实体内容:服务器返回给客户端的具体数据,比如文件数据。


    POST和GET的区别

    六、TCP和UDP的区别

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

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

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

    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、socker主要使用“套接字”链接,并没有规定连接后断开,所以客户端和服务端可以保持长连接,双方都可以主动发送数据。一般应用在股票开发、游戏等即时性很强且发送数量比较大的场合。

    十、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申请证书,一般免费证书很少,需要交费。

    相关文章

      网友评论

          本文标题:iOS HTTP总结

          本文链接:https://www.haomeiwen.com/subject/lzbhjftx.html