Fork me on GitHub

计算机网络 - HTTP协议

注意:所有文章除特别说明外,转载请注明出处.

计算机网络 - HTTP协议

HTTP协议是属于应用层的协议,是超文本传输协议。

特点:1.支持客户端与服务器模式。2.简单快速。3.无连接。4.无状态。

问题:在浏览器地址栏输入URL之后,按下回车之后经历的流程:1.DNS解析(DNS缓存,浏览器缓存…)。2.在DNS找到ip地址之后会根据ip地址进行TCP连接。3.之后浏览器会发送HTTP请求。4.紧接着服务器请求并返回HTTP报文。5.浏览器解析渲染页面。6.浏览器释放TCP连接。

GET请求和POST请求的区别:1.HTTP报文层面,GET请求将信息放在URL中,POST请求将请求信息放在报文体中。2.在数据库层面,GET符合幂等性(对数据库一次操作和多次操作获得的结果是一致的)和安全性,POST不符合。3.GET请求可以被缓存、被存储,而POST请求不行。

Cookie和Session的区别:

1.Cookie是由服务器发送给客户端的特殊信息,以文本的形式存放在客户端。

2.客户端再次请求的时候,会把Cookie回发。

3.服务器接收到后,会解析Cookie生成与客户端相对应的内容。

Cookie的设置和发送过程

1.客户端向服务器发送一个HTTP请求

2.服务器发送一个HTTP Response 和 Set-Cookie到客户端

3.客户端发送一个HTTP request 和 Cookie到服务器

4.服务器发送一个Http响应到客户端

2.Session

1.Session是服务器端的机制,在服务器上保存的信息

2.解析客户端请求并操作SessionId,按需保存状态信息

Session的实现方式

1.使用Cookie实现

    在客户端发起http请求之后,服务器返回response和一个sessionId

2.使用URL回写实现

两者之间的区别:1.Cookie数据存放在客户的浏览器上,Session数据存放在服务器上。2.Session相对于Cookie更安全。3.如果考虑减轻服务器负担,应当使用Cookie。

HTTP和HTTPS的区别:

1.SSL:安全套接层,为网络通信提供安全及数据完整性的一种安全协议。是操作系统对外的API,SSL3.0之后更名TLS。采用身份验证和数据加密保证网络通信的安全和数据的完整性。

HTTPS数据传输流程

1.浏览器将支持的加密算法信息发送给服务器

2.服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器

3.浏览器验证证书合法性,并结合证书公钥加密信息发送给服务器

4.服务器使用私密解密信息,验证哈希,加密响应消息回发浏览器

5.浏览器解密响应信息,对消息进行验真,之后进行加密交互数据

两者之间的区别:1.HTTPS需要到CA申请证书,HTTP不需要。2.HTTPS密文传输,HTTP明文传输。3.连接方式不同,HTTPS默认使用443端口,HTTP使用80端口。4.HTTPS=HTTP+加密+认证+完整性保护,相对于HTTP来说安全。

HTPS

Socket

在网络中可以利用 协议+ip地址+端口号 唯一标识一个网络进程。

Socket是对TCP/IP协议的抽象,是操作系统对外开放的接口。

Socket通信流程

1.服务器

    1.创建socket socket()

    2.绑定socket和端口号 bind()

    3.监听该端口号 listen()

    4.接收来自客户端的连接请求 accept()

    5.从socket中读取字符 recv()

    6.关闭socket close()


2.客户端

    1.创建socket socket()

    2.连接指定的计算机的端口 connect()

    3.向socket中写入信息 send()

    4.关闭socket close()

本文标题:计算机网络 - HTTP协议

文章作者:Bangjin-Hu

发布时间:2019年10月15日 - 09:22:26

最后更新:2020年03月30日 - 08:20:06

原始链接:http://bangjinhu.github.io/undefined/计算机网路 - HTTP协议/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Bangjin-Hu wechat
欢迎扫码关注微信公众号,订阅我的微信公众号.
坚持原创技术分享,您的支持是我创作的动力.