HTTP

相关引用:

https://www.jianshu.com/p/80e25cb1d81a

http://blog.51cto.com/13570193/2108347

https://blog.csdn.net/green703338130/article/details/79402405

正文:

HTTP协议:Hyper Text Transfer Protocol(超文本传输协议)

应用层,建立在TCP上,无状态协议

流程:客户端—》发送HTTP请求--》服务器--》处理请求--》访问服务器资源--》发送HTTP响应给客户端

方式:HTTP使用URI来传输数据和建立连接

URI: Uniform Resource Identifiers, 统一资源标识符,包含了查找某个资源的足够的信息,比如:资源路径

URL:Uniform Resource Locator,统一资源定位符,是特殊类型的URI。

请求 + 响应 组成了一个事务,事务结束后在服务端增加一条log

请求(Request):

请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

响应(Response):

状态栏、消息报头、空行和响应正文四部分组成。

状态栏 组成:HTTP协议版本号,状态码,状态消息

状态码:

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

请求方法:

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

GET:请求数据是空的,对URL长度有限制,IE的是(2K+35=2083字节)

POST安全性比GET安全性要高,因为GET提交的用户名和密码会明文出现在URL上

HTTP请求/响应步骤:

1、客户端连接到Web服务器:客户端发起,与服务器端口(默认80),创建TCP套接字连接

2、发送HTTP请求:请求行,请求头部,空行,请求数据

3、服务器接受请求并返回响应

4、释放TCP连接

     若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;

     若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求

5、客户端解析HTML内容

例子:

在浏览器地址栏键入URL,按下回车之后会经历以下流程:

1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;

2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;

3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求(GET方法),该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;

4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

5、释放TCP连接;

6、浏览器将该 html 文本并显示内容;

HTTP和HTTPS:

https协议需要到ca申请证书,且采用了SSL加密传输。

http端口:80,https端口:443

HTTP和FTP

FTP:File Transfer Protocol,文件传输协议

使用场景:一台主机向一台远程主机上传文件或者从远程主机下载文件

1. 同: 
(1)都是应用层协议; 
(2)都运行在TCP上,即都使用TCP(而不是UDP)作为其支撑的运输层协议。 
2. 异: 
(1)HTTP是超文本传输协议,是面向网页的;FTP是文件传输协议,是面向文件的。 
(2)HTTP协议默认端口:80号端口。FTP协议默认端口:21号端口。 
(3)FTP的控制信息是带外(out-of-band)传送的,而HTTP的控制信息是带内(in-band)传送的。 

posted on 2018-11-04 22:51  YoungBig  阅读(406)  评论(0编辑  收藏  举报

导航