快速理解HTTP,来看看这个吧!

HTTP是什么?

HTTP是超文本传输协议的缩写

该协议工作在客户端--服务端框架

浏览器作为HTTP客户端通过URL向HTTP服务端(Web服务器)发送请求

服务端(Web服务器)接收到请求之后,向客户端发送响应消息


HTTP协议的组成

请求:

 请求行(请求方法,url,http版本 )
 请求头
 请求体(请求的报文)

响应:

状态行(http版本,状态码,状态码描述)
响应头
响应体

HTTP协议头的内容

请求头:

accept:text/xml; (客户端希望接受到的响应类型-请求报文头)点这里
accept-charset:utf-8;(客户端接受的字符集)
accept-encoding;(客户端接收的编码方式)
accept-languague(客户端接受的语言)
connection:keep-alive (使用的连接类型) http1.1默认keep-alive,http1.0默认close;
cookie
content-length:(以8进制表示请求体的长度)
content-type:application/xml (客户端发送的格式)
date:发送的日期和时间
host:服务器的地址和端口

响应头

connection
content-dispsition (对资源的处理,如下载、打开)
content-encoding
content-languague
content-length
content-type
date
server
location 用于在进行重定向,或在创建了某个新资源时使用。
Set-Cookie

 


HTTP协议的特点

HTTP协议是一种无连接、无状态的协议

无连接:限制每一次连接只处理一个请求。服务器处理完客户的请求,收到客户应答后,断开连接。(可以节省传输时间)

无状态:HTTP是一种无状态的协议。

无状态指协议对于事务的处理没有记忆的能力。

缺少状态指如果后续处理需要前面的信息,必须重新传输。


HTTP状态码

1xx:指示信息–表示请求已接收,继续处理 
2xx:成功–表示请求已被成功接收、理解、接受 
3xx:重定向–要完成请求必须进行更进一步的操作 
4xx:客户端错误–请求有语法错误或请求无法实现 
5xx:服务器端错误–服务器未能实现合法的请求 

HTTP的工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。

HTTP协议采用了请求/响应模型

客户端向服务器发送一个请求报文(内含请求的方法、URL、协议版本、请求头、请求数据)

服务器端以一个状态行作为响应(内容包含协议的版本、成功\错误代码、服务器信息、响应头、响应数据)


HTTP请求/响应过程:

1、客户端连接到Web服务器
客户端与Web服务器的HTTP端口(默认为80端口)建立一个TCP连接
2、发送HTTP请求
通过TCP连接。客户端向Web服务器发送一个文本的请求报文(请求头、请求行、空行、请求数据)
3、服务器接收请求并返回HTTP响应
Web服务器解析请求、定位请求资源。服务器将资源拷贝到TCP连接通道中,由客户端进行读取。客户端做出响应(状态行、响应头、空行、相应数据)
4、释放资源
如果连接状态为close,服务器主动关闭TCP连接、客户端被动关闭连接,释放TCP连接
如果连接状态为keepalive,则连接会继续保持一段时间,时间内可以继续接收请求

客户端浏览器解析HTML内容

1、客户端浏览器首先解析状态行,查看请求是否成功的状态码

2、解析响应头(告知以下为xxx字节的HTML文档和文档的字符集)

3、客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口显示

浏览器输入一个地址URL之后会有以下的流程
1、浏览器向DNS服务器(域名解析服务器)请求解析URL中的域名中对应的IP地址
2、解析完成后,根据解析出的IP地址和默认端口80,与服务器建立TCP连接
3、浏览器发出读取文件(URL中对应的文件)的HTTP请求,该请求报文作为TCP三次握手的第三个报文数据发送给服务器
4、服务器对浏览器请求作出响应,并把对应的HTML文本发送给浏览器
5、释放TCP连接
6、浏览器将HTML文本的内容显示出来

HTTP和HTTPS的区别?

一句话理解:HTTPS是安全版的HTTP,在HTTP下加入了SSL层,对SSL层进行加密。

HTTPS的主要作用:
1、建立一个信息安全通道,保证数据传输的安全
2、确然网站的真实性

区别:

A、HTTPS协议需要申请证书,HTTP不需要

B、HTTP信息是明文传输,HTTPS具有安全性的SSL加密传输协议

C、连接方式不同,端口不同  HTTP:80     HTTPS:443

D、HTTP连接简单、无状态;HTTPS由SSL+HTTP构建的可加密传输,更安全


HTTPS协议的安全性是如何实现的?

1、客户使用https的URL访问Web服务器,请求与Web服务器建立SSL连接。 
2、Web服务器收到客户端请求后,会将网站的证书信息(证书中包含公钥)传送一份给客户端。 
3、客户端的浏览器与Web服务器开始协商SSL连接的安全等级,也就是信息加密的等级。 
4、客户端的浏览器根据双方同意的安全等级,建立会话密钥,然后利用网站的公钥将会话密钥加密,并传送给网站。 
5、Web服务器利用自己的私钥解密出会话密钥。 
6、Web服务器利用会话密钥加密与客户端之间的通信。 
 


session和cookie

面试题:

说说Cookie和Session的区别?
   
   1、Cookie和Session都是会话技术,Cookie是运行在客户端,Session是运行在服务器端。
   2、Cookie有大小限制以及浏览器在存cookie的个数也有限制,Session没有大小限制和服务器的内存大小有关。 
   3、Cookie有安全隐患,通过拦截或通过本地文件找得到你的cookie后可以进行攻击。
   4、Session保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。
发布了120 篇原创文章 · 获赞 37 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Zhengxinyu666/article/details/100025559