HTTP协议笔记

HTTP协议笔记

标签(空格分隔): HTTP,TCP/IP


[TOC]

1.网络协议基础知识

TCP/IP协议族按层次分为以下四层:

应用层、传输层、网络层、数据链路层

应用层:

应用层的协议有比如FTP,DNS以及HTTP协议

传输层:

主要是TCP(面向有连接)和UDP(面向无连接)

网络层:

网络层则是用来处理在网络上流动的数据包,数据包是网络传输的最小单位。主要的协议为IP协议。

链路层:

主要是来处理链接网络的硬件部分。

IP 协议:

IP协议的作用是把各数据包传送给对方。其中重要的两个部分则是IP地址(勿和协议混淆)以及MAC地址(MAC地址是网卡所属的固定的地址)。并且IP地址与MAC地址相配对,IP地址可变,MAC地址不可变。

ARP协议:

一种解析地址的协议,可以通过对方的IP地址查出对应的MAC地址。

TCP协议:

三次握手:

TCP是面向有连接的传输协议。TCP不会对数据包置之不理,而是一直会向对方确认所传输的数据包是否已经到达。在三次握手中,会使用SYN以及ACK标志来进行确认。

发送段首先将标有SYN的数据包发送给接收端,接收端收到后,回答一个带有SYN以及ACK的数据包来表示己方已经成功的接收到了消息。最后发送端再回传一个ACK标志的数据包给接收端。这时代表三次握手结束。此时发送端再向接收端开始传送数据。

发送端 >————SYN————>接收端

发送端 <———SYN/ACK———<接收端

发送端 >————ACK————>接收端

四次挥手

发送端 >———FIN/ACK———>接收端

发送端 <————ACK————<接收端

发送端 <————FIN————<接收端

发送端 >————ACK————>接收端

DNS服务:

DNS是和HTTP一样位于应用层的协议,它的作用是提供域名和IP地址之间的解析服务。也就是给我们一个域名,我们可以查它的IP地址或者说,通过IP地址,反查出域名。

2.HTTP

HTTP协议主要是客户端到服务器端的通信协议。

HTTP协议可以分出客户端以及服务器端,因为总是客户端发送请求,而服务器端回复响应。所以换句话说,客户端先发出请求,后而有服务器端作出响应。

HTTP是一种无状态协议,也就是说不对请求和响应之间的通信状态进行保存。所以只要有新的请求发生,就会有新的回应产生。(cookie的使用则是为了方便管理状态)

HTTP使用URI定位资源。

告知服务器意图的HTTP方法

GET:获取资源

GET方法用来请求访问已经被URI识别的资源,然后资源通过服务器解析后返回响应的内容。如果请求的资源是文本,那就保持原样返回。

POST:传输实体主体

POST方法用来传送实体的主体,一般由客户端向服务器端发送信息,例如提交表格等等向服务器端提交信息。

PUT:传输文件

PUT方法用来传输文件,类似于FTP协议的文件上传一样,在请求报文中包含文件的主体内容,然后请求保存到URI指定的位置上。(HTTP/1.1不带身份验证机制,所以并不安全)

HEAD:获取报文首部

HEAD方法类似于GET方法,只是不返回主体报文,只是返回一个报文首部,用于确认URI的有效性以及资源更新的日期等等。

DELETE:删除文件

DELETE方法用于删除文件,和PUT相反

OPTIONS:询问支持的方法

顾名思义,就是向服务器端询问支持的哪些方法

Cookie状态管理

之前有提到HTTP是无状态协议,它无法对之气发生过的请求和响应进行管理。例如一个登录页面,我们每次打开整个页面都需要重新进行登录,提交我们的身份信息进行登录。而使用了Cookie之后,在客户端会保存Cookie文件,在下次提交请求和响应的过程中,客户端会将Cookie中的信息自动的添加到报文请求中,相当于自动的为我们为我们存储了状态信息。

3.HTTP状态码

当客户端向服务器端发送请求时,状态码用来返回请求结果

2XX成功

200ok

表示客户端的请求被成功的正常处理

204 No Content

表示服务器端接收的请求已经被正常处理。(不返回新资源)

206 Partial Content

客户端对服务器端资源的部分请求

3XX重定向

304 Not Modified

表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但是并未满足条件的情况。

4XX客户端错误

400 Bad Request

请求报文中有语法错误

403 Forbidden

服务器拒绝了请求资源的访问

例如未获得文件系统的访问授权,访问权限出现问题

404 Not Found

服务器上无法找到请求的资源

5XX服务器错误

5xx响应表明服务器本身出现错误

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,798评论 19 139
  • 1.OkHttp源码解析(一):OKHttp初阶2 OkHttp源码解析(二):OkHttp连接的"前戏"——HT...
    隔壁老李头阅读 21,264评论 24 176
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 10,486评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 14,479评论 6 174
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 12,702评论 6 152