请求有客户端发起:可分为4个部分,请求方法(Requestmethod)、请求的网址(Request URL)、请求头(Request Headers)、请求体(Request Body)

  1.请求方法

      常见的有get和post

      get和post的区别:

        1.get请求中的参数包含在URL中,数据可以在URL中看到,而post请求的URL不会包含这些数据,数据都是通过表单的形式传输的,会包含在请求体中。

        2.get请求提交的数据最多包含1024字节,而post请求没有限制。

        一般登录时,需要提交用户名和密码,其中包含了敏感信息,用get请求的话密码就会暴露在外面,最好使用post请求。

  2.请求的网址

      请求的网址,即统一资源定位符URL,它是唯一确定我们想请求的资源

  3.请求头

      请求头,用来说明服务器要使用的附加信息,比较重要的信息有Cookie、Referer、User-Agent等,下面是一些常见的头信息

      accept:请求报头域,用于指定客户端可以接受那些类型的信息

      accept-Language:指定客户端可接受的语言类型

      accept-Encoding:指定客户端可接受的内容编码

      host:指定请求资源的主机的IP和端口号,其内容为请求URL的原始服务器或网关的位置

      cookie:这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据,主要功能就是为了维持当前的会话访问。

      referer:用来标识这个请求是从哪个页面发过来的,服务器可以那这信息并做响应的处理

      user-agent:简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本,浏览器及其版本信息,在做爬虫时加上此信息,可以伪装成浏览器,如果不加,很有可能被识别出为爬虫。

      context-type:也叫互联网媒体类型,或者MIME类型,在HTTP协议消息头中,它用来标识具体请求中的媒体类型信息。

      因此请求头是请求的重要组成部分,在写爬虫时,大部分情况下都需要设置请求头。

  4.请求体 

      请求体一般承载的内容是post请求中的表单数据,而对于get请求请求体为空。

      content-type和post提交数据方式的关系

      application/x-www-form-urlencode        表单数据

      multipart/form-data                 表单文件上传

      application/json                 序列化json数据

      text/xml                      XML数据

响应,由服务端返回给客户端,分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)和响应体(Response Body)。

  1.响应状态码

      代表服务器的响应状态。

  2.响应头

      响应头包含了服务器对请求的应答信息,如context-type、server、set-cookie等

      date:服务响应产生的时间

      last-modified:指定资源的最后修改时间

      content-encoding:指定响应内容的编码

      server:包含服务器的信息,比如名称,版本号等。

      context-type:文档类型,指定返回的数据类型是什么。

      set-cookie:设置cookies。

      expires:指定响应的过期时间,可以使代理服务器或者浏览器将加载的内容更新到缓存中。如果再次访问,就可以直接从缓存中加载,降低服务器负载,缩短加载时间。

  3.响应体

      响应的正文数据都在响应体中了。

  

Http的请求和响应的更多相关文章

  1. Django底层剖析之一次请求到响应的整个流程

    As we all know,所有的Web应用,其本质上其实就是一个socket服务端,而用户的浏览器就是一个socket客户端. #!/usr/bin/env python #coding:utf- ...

  2. 初入网络系列笔记(4)HTTP请求和响应

    一.借鉴说明,本博文借鉴以下博文 1.starok,HTTP必知必会,http://www.cnblogs.com/starstone/p/4890409.html 2.CareySon,HTTP协议 ...

  3. http协议(二)请求和响应报文的构成

    http协议用于客户端和服务器之间的通信,请求访问资源的一方称为客户端,而提供资源响应的一方称为服务器端. 下面就是客户端和服务端之间简单的通信过程 PS:请求必须从客户端建立通信,服务端没收到请求之 ...

  4. iOS开发——网络篇——HTTP/NSURLConnection(请求、响应)、http响应状态码大全

    一.网络基础 1.基本概念> 为什么要学习网络编程在移动互联网时代,移动应用的特征有几乎所有应用都需要用到网络,比如QQ.微博.网易新闻.优酷.百度地图只有通过网络跟外界进行数据交互.数据更新, ...

  5. struts2基础——请求与响应、获取web资源

    一.请求与响应 Action1.含义:(1) struts.xml 中的 action 元素,也指 from 表单的 action 属性,总之代表一个 struts2 请求.(2) 用于处理 Stru ...

  6. 浏览器-Tomcat服务器-请求与响应

    浏览器访问服务器,本质就是请求资源. 比如请求静态资源:index.html,我们在浏览器地址栏输入:www.a.com/index.html,浏览器为了支持HTTP协议,发送的数据必须符合HTTP协 ...

  7. 写一个ActionFilter检测WebApi接口请求和响应

    我们一般用日志记录每次Action的请求和响应,方便接口出错后排查,不过如果每个Action方法内都写操作日志太麻烦,而且客户端传递了错误JSON或XML,没法对应强类型参数,请求没法进入方法内, 把 ...

  8. AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应

    Web 开发中,除了数据操作之外,最频繁的就是发起和处理各种 HTTP 请求了,加上 HTTP 请求又是异步的,如果在每个请求中来单独捕获各种常规错误,处理各类自定义错误,那将会有大量的功能类似的代码 ...

  9. Http请求与响应格式

    原文:http://www.cnblogs.com/z941030/p/4699779.html Http协议对浏览器发出的Request格式以及对Web服务器发出的Response格式有具体的规定. ...

  10. HeadFirst Jsp 04 (请求和响应作为servlet)

    servlet 的存在就是为了客服服务, servlet的任务是得到一个客户的请求, 再发回一个响应. 由上图可知, web 容器会在启动后就加载所有的servlet类, 并为之创建实例和初始化 注意 ...

随机推荐

  1. Gradle Goodness: Profiling Information

    If we want to know more about how much time is spent in tasks we can use the --profile command-line ...

  2. EF Core怎么只Update实体的部分列数据

    下面是EF Core中的一个Person实体: public partial class Person { public int Id { get; set; } public string Code ...

  3. 课时10.第一个HTML网页(掌握)

    网页的固定格式 编写网页和写信一样都有一套规范和要求,这套规范和要求中规定了写信的固定格式 写信基本结构 亲爱的xx: 你好! 我.................. ...... 此致 敬礼! xx ...

  4. 极光推送能获取 registrationId,但是接收不到通知 - iOS

    集成极光推送进行调试的时候,运行 App 可以正常获取 registrationId,但是却迟迟无法收到推送消息,而Android 端是可以正常收到消息; 检查了证书配置和极光的配置一切正常,便开始返 ...

  5. AtomicStampedReference解决ABA问题

      在运用CAS做Lock-Free操作中有一个经典的ABA问题: 线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值 ...

  6. Zabbix——自动发现

    前提条件: Zabbix版本为4.0 固定网段寻找网络设备,并添加组.添加模板.添加proxy. 设置完毕,等待~~ 如果没有问题,将会直接出现在host中.

  7. MYSQL 8.0.11 安装过程及 Navicat 链接时遇到的问题

    参考博客:https://blog.csdn.net/WinstonLau/article/details/78666423 我的系统和软件版本是这样的: 系统环境:win7.64位 MySQL版本: ...

  8. tctip打赏小插件

    tctip是一个js插件,作用是在web网页右侧生成一个打赏浮动窗 使用方法 页面使用(多数人的使用方式) 插件下载地址 第一步,引入js 一般引入min版本,即引入tctip-版本号.min.js文 ...

  9. Python记录键盘鼠标敲击次数

    Idea 作为一个每天有一半时间都在电脑旁的人,无时无刻不在敲击着键盘,点击着鼠标.有一天,我突然很想知道在一天的时间内,在我轻盈的指法下面,键盘被我狂敲了多少下,鼠标又被我点击了多少次.甚至更具体一 ...

  10. linux简单文件管理命令的使用

    在linux系统中,命令的使用要方便于图形界面的使用,上一个博客介绍了如何使用PuTTy远程登录linux,当然,我使用的是本地登录(手动滑稽) 经过一星期课余时间的了解,大致了解了一些简单的文件管理 ...