HTTP协议详解

HTTP 超文本传输协议

是一种建立在TCP上的无状态连接
工作流程
1.客户端发送一个HTTP请求(说明客户端想要访问的资源和请求的动作)
2.服务端收到请求后处理请求,并根据请求做出相应的动作访问服务器里的资源。
3.最后通过发送HTTP响应把结果返回给客户端。
其中一个请求的开始到一个响应的结束称为事务,当一个事物结束后还会在服务端添加一条日志条目。

一、HTTP请求

HTTP请求是客户端往服务端发送请求动作,告知服务器自己的要求。
HTTP请求由状态行请求头请求正文三部分组成。

状态行:包括请求方式Method、资源路径URL、协议版本Version
请求头:包括一些访问的域名用户代理Cookie等信息;
请求正文:就是HTTP请求的数据

HTTP请求方法详解共定义了八种方法
OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘’的请求来测试服务器的功能性
HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
GET
向特定的资源发出请求。它本质就是发送一个请求来取得服务器上的某一资源。资源通过一组HTTP头和呈现数据(如HTML文本,或者图片或者视频等)返回给客户端。GET请求中,永远不会包含呈现数据。
POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
PUT
PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存在请求URI指定的位置。但是HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全问题,故一般不用。
DELETE
指明客户端想让服务器删除某个资源,与PUT方法相反,按URI删除指定资源
TRACE
***加粗样式
回显服务器收到的请求,主要用于测试或诊断
CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

二.HTTP响应

服务器收到了客户端发来的HTTP请求后,根据HTTP请求中的动作要求,服务端做出具体的动作,将结果回应给客户端,称为HTTP响应。
HTTP响应由三部分组成:状态行、响应头、响应正文;

状态行:包括协议版本Version、状态码Status Code、回应短语;
响应头:包括搭建服务器的软件,发送响应的时间,回应数据的格式等信息;
响应正文:就是响应的具体数据。

状态码:
1xx 表示HTTP请求已经接受,继续处理请求
2xx 表示HTTP请求已经处理完成
3xx 表示把请求访问的URL重定向到其他目录
4xx 表示客户端出现错误
5xx 表示服务端出现错误

get 和 post区别

  1. get请求将数据放在url地址中, post请求将数据放在消息体中
  2. GET请求请提交的数据放置在HTTP请求协议头中,而POST提交的数据则放在实体数据中;
  3. GET方式提交的数据最多只能有1024字节,而POST则没有此限制。
  4. get不安全 post相对安全
  5. get用于验证信息,如:向服务器查询用户名和密码;post用于向服务器发送被保存的数据,如:表单提交。

附加

HTTP常见面试题 https://blog.csdn.net/yicixing7/article/details/79320821
TCP/IP 协议 https://blog.csdn.net/yulyu/article/details/69062288
TCP https://www.cnblogs.com/buxiangxin/p/8336022.html
http和tcp关系 https://blog.csdn.net/weixin_40784198/article/details/81434530

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值